<?xml version="1.0"?>
<doc>
    <assembly>
        <name>GeoFramework.Gps.PocketPC</name>
    </assembly>
    <members>
        <member name="T:GeoFramework.Gps.Nmea.PgrmfSentence">
            <summary>
            Represents a Garmin $PGRMF sentence.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.NmeaSentence">
            <summary>
            Represents a single line of NMEA GPS data.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Packet">
            <summary>
            Represents a base class for designing GPS data packets.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Packet.ToByteArray">
            <summary>
            Converts the packet into an array of bytes.
            </summary>
            <returns></returns>
        </member>
        <member name="P:GeoFramework.Gps.Packet.IsValid">
            <summary>
            Returns whether the pack data is well-formed.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.Nmea.NmeaSentence.NmeaCultureInfo">
            <summary>
            Represents the culture used to process all NMEA GPS data, including numbers and dates.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Nmea.NmeaSentence.#ctor">
            <summary>
            Creates a new instance.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Nmea.NmeaSentence.#ctor(System.String)">
            <summary>
            Creates a new instance from the specified string.
            </summary>
            <param name="sentence"></param>
        </member>
        <member name="M:GeoFramework.Gps.Nmea.NmeaSentence.#ctor(System.String,System.String,System.String[],System.String)">
            <summary>
            Creates a new instance from known values.
            </summary>
            <param name="sentence">A <strong>String</strong> containing the entire text of the sentence.</param>
            <param name="commandWord">A <strong>String</strong>, the first word of the sentence.</param>
            <param name="words">A <strong>String</strong> array, the comma-separated strings between the command word and checksum.</param>
            <param name="validChecksum">A <strong>String</strong>, the correct checksum for the sentence.</param>
            <remarks>This constructor is typically used when it some processing of the sentence has already occurred.
            GPS.NET performs an analysis of the sentence to determine its type.  For the sake of speed, processed information can
            be preserved using this constructor.  To process an entire sentence, use the entire NMEA string as a constructor.</remarks>
        </member>
        <member name="M:GeoFramework.Gps.Nmea.NmeaSentence.AppendChecksum">
            <summary>
            Calculates and adds a checksum to the end of the sentence.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Nmea.NmeaSentence.Words">
            <summary>
            Returns the body of the sentence split by commas into strings.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Nmea.NmeaSentence.CommandWord">
            <summary>
            Returns the first word of the sentence which indicates its purpose.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Nmea.NmeaSentence.ExistingChecksum">
            <summary>
            Returns the current checksum of the sentence.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Nmea.NmeaSentence.CorrectChecksum">
            <summary>
            Returns the checksum which matches the content of the sentence.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Nmea.NmeaSentence.Sentence">
            <summary>
            Returns a string representing the entire NMEA sentence.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.IUtcDateTimeSentence">
            <summary>
            Represents an NMEA sentence which contains date and time in UTC.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.IPositionSentence">
            <summary>
            Represents an NMEA sentence which contains latitude and longitude values.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.IFixModeSentence">
            <summary>
            Represents an NMEA sentence which describes the current fix.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.IFixQualitySentence">
            <summary>
            Represents an NMEA sentence which describes how the fix is being obtained.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.ISpeedSentence">
            <summary>
            Represents an NMEA sentence which contains 
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.IBearingSentence">
            <summary>
            Represents an NMEA sentence which contains the direction of travel.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.IPositionDilutionOfPrecisionSentence">
            <summary>
            Represents an NMEA sentence which contains 
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.IO.Device">
            <summary>
            Represents a device on the local machine.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.OnConnecting">
            <summary>
            Occurs when a connection is about to be attempted.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.OnConnected">
            <summary>
            Occurs when a connection has been successfully established.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.OnDisconnecting">
            <summary>
            Occurs when an open connection is about to be closed.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.OnDisconnected">
            <summary>
            Occurs when an open connection has been successfully closed.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.SetDateConnected(System.DateTime)">
            <summary>
            Updates the date a connection was last opened.
            </summary>
            <param name="date"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.SetDateDetected(System.DateTime)">
            <summary>
            Updates the date the device was last confirmed as a GPS device.
            </summary>
            <param name="date"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.SetTotalConnectionTime(System.TimeSpan)">
            <summary>
            Updates the total time spent connecting to this device.
            </summary>
            <param name="time"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.SetFailedDetectionCount(System.Int32)">
            <summary>
            Updates the number of times detection has failed.
            </summary>
            <param name="count"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.SetSuccessfulDetectionCount(System.Int32)">
            <summary>
            Updates the number of times detection has succeeded.
            </summary>
            <param name="count"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.OpenStream(System.IO.FileAccess,System.IO.FileShare)">
            <summary>
            Creates a new Stream object for the device.
            </summary>
            <returns>A <strong>Stream</strong> object.</returns>
            <remarks>Developers who design their own GPS device classes will need to override this method and use it to establish
            a new connection.  This method is called by the <strong>Open</strong> method.  The <strong>Stream</strong> returned by
            this method will be assigned to the <strong>BaseStream</strong> property, it it will be used for all device communications, 
            including GPS protocol detection.</remarks>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.OnCacheWrite">
            <summary>
            Records information about this device to the registry.
            </summary>
            <remarks>In order to organize and maximize performance of GPS device detection, information about devices
            is saved to the registry.  This method, when overridden, serializes the device to the registry.  All registry
            keys should be saved under the branch <strong>HKLM\Software\GeoFrameworks\GPS.NET\3.0\Devices\[Type]\[ID]</strong>, where
            <strong>[Type]</strong> is the name of the technology used by the device (e.g. Serial, Bluetooth, etc.), and <strong>[ID]</strong>
            is a unique ID for the device (e.g. "COM3", an address, etc.).  Enough information should be written to be able to
            establish a connection to the device after reading registry values.</remarks>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.OnCacheRead">
            <summary>
            Reads information about this device from the registry.
            </summary>
            <remarks>In order to organize and maximize performance of GPS device detection, information about devices
            is saved to the registry.  This method, when overridden, reads information for this device from the registry.  All registry
            values should have been previously saved via the <strong>OnCacheWrite</strong> method.</remarks> 
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.OnCacheRemove">
            <summary>
            Removes previously cached information for this device from the registry.
            </summary>
            <remarks>In some cases, the information about previously detected devices may interfere with system changes such as adding
            a replacement GPS device.  This method will remove the entire registry key for a device, causing GPS.NET 3.0 to start over when
            GPS devices need to be detected.</remarks> 
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.DetectProtocol">
            <summary>
            Performs a test on the device to confirm that it transmits GPS data.
            </summary>
            <returns>A <strong>Boolean</strong> value, <strong>True</strong> if the device is confirmed.</returns>
            <remarks><para>This method will open a connection if necessary via the <strong>Open</strong> method, then proceed to 
            examine it for GPS data.  This method will always be called on a separate thread to keep detection from slowing 
            down or blocking the main application.</para>
            <para>Developers who override this method should ensure that the method can clean up any resources used, even if a 
            ThreadAbortException is raised, as a result of the detection thread being aborted.  This can be done by wrapping all code in a
            <strong>try..catch</strong> block, and placing all clean-up code in a <strong>finally</strong> block.</para>
            </remarks>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.Open">
            <summary>
            Opens a new connection to the device.
            </summary>
            <remarks><para>This method will create a new connection to the device.  The connection will be created in the form of a
            <strong>Stream</strong> object.  If a connection is already open, this method has no effect.</para></remarks>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.Open(System.IO.FileAccess,System.IO.FileShare)">
            <summary>
            Opens a new connection to the device.
            </summary>
            <param name="access"></param>
            <remarks><para>This method will create a new connection to the device.  The connection will be created in the form of a
            <strong>Stream</strong> object.  If a connection is already open, this method has no effect.</para></remarks>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.Undetect">
            <summary>
            Cancels detection and marks this device as undetected.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.Test">
            <summary>
            Performs an analysis of the device and its capabilities.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.BeginDetection">
            <summary>
            Starts a new thread which checks the device for GPS data in the background.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.Close">
            <summary>
            Closes any open connection to the device.
            </summary>
            <remarks>This method will close any open connection to the device.  Any associated <strong>Stream</strong> object
            will be disposed.  If no open connection exists, this method has no effect.  This method is called automatically
            when the device is disposed, either manually or automatically via the finalizer.</remarks>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.WaitForDetection">
            <summary>
            Waits for the device to be checked for GPS data.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.WaitForDetection(System.TimeSpan)">
            <summary>
            Waits for the device to be checked for GPS data, up to the specified timeout period.
            </summary>
            <param name="timeout"></param>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.CancelDetection">
            <summary>
            Stops any GPS protocol detection in progress.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.PrecisionEstimate(GeoFramework.Gps.FixQuality)">
            <summary>
            Esitmates device prcision based on the fix quality.
            </summary>
            <param name="quality"> The current fix quality of a device or emulation</param>
            <returns> The estimated error of latitude/longitude coordinates attributed to the device. </returns>
            <remarks>
            If a the fix quality is unknown or NoFix, this method returns the value stored 
            in the DillutionOfPrecision.CurrentAverageDevicePrecision property.
            </remarks>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.BestDeviceComparer(GeoFramework.Gps.IO.Device,GeoFramework.Gps.IO.Device)">
            <summary>
            Compares two devices for the purpose of finding the device most likely to provide a successful connection.
            </summary>
            <param name="x"></param>
            <param name="y"></param>
            <returns>An <strong>Integer</strong> value.</returns>
            <remarks>This method is used during <strong>Sort</strong> methods to choose the device most likely to respond.
            The date the device last successfully opened a connection is examined, along with historical connection statistics.
            The "best" device is the device which has most recently opened a connection successfully, with the fewest amount of
            connection failures.</remarks>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.Dispose">
            <summary>
            Disposes of any managed or unmanaged resources used by the device.
            </summary>
            <remarks>Since the <strong>Device</strong> class implements the <strong>IDisposable</strong> interface, all managed or
            unmanaged resources used by the class will be disposed.  Any open connection will be closed.  The <strong>Dispose</strong>
            method is also called (if necessary) during the finalizer for this class.</remarks>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.Dispose(System.Boolean)">
            <summary>
            Disposes of any unmanaged (or optionally, managed) resources used by the device.
            </summary>
            <remarks>This method is called when the object is no longer needed.  Typically, this happens during the shutdown of the parent
            application.  If device detection is in progress, it will be immediately cancelled.  If any connection is open, it will immediately
            be closed and disposed.  This method is called via the finalizer if necessary, thus removing the need for explicit calls.  Developers
            who prefer to call this method explicitly, however, may do so.</remarks>
        </member>
        <member name="M:GeoFramework.Gps.IO.Device.CompareTo(GeoFramework.Gps.IO.Device)">
            <summary>
            Compares two devices for the purpose of finding the device most likely to provide a successful connection.
            </summary>
            <param name="x"></param>
            <param name="y"></param>
            <returns>An <strong>Integer</strong> value.</returns>
            <remarks>This method is used during <strong>Sort</strong> methods to choose the device most likely to respond.
            The date the device last successfully opened a connection is examined, along with historical connection statistics.
            The "best" device is the device which has most recently opened a connection successfully, with the fewest amount of
            connection failures.</remarks>
        </member>
        <member name="E:GeoFramework.Gps.IO.Device.Connecting">
            <summary>
            Occurs when a connection is about to be opened.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.IO.Device.Connected">
            <summary>
            Occurs when a new connection has opened successfully.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.IO.Device.Disconnecting">
            <summary>
            Occurs when an open connection is about to be closed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.IO.Device.Disconnected">
            <summary>
            Occurs when an open connection has been closed.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Device.Name">
            <summary>
            Returns a natural language name for the device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Device.DetectionWaitHandle">
            <summary>
            Returns a reset event used to determine when GPS detection has completed.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Device.IsOpen">
            <summary>
            Returns whether a connection is established with the device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Device.BaseStream">
            <summary>
            Returns the stream associated with this device.
            </summary>
            <remarks>This property is provided solely for more advanced developers who need to interact directly with a device.
            During normal operations, the stream returned by this property is managed by this class.  As a result, it is not necessary
            to dispose of this stream.  If no connection is open, this property will return <strong>null</strong>.</remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.Device.DateDetected">
            <summary>
            Returns the date and time the device was last confirmed as a GPS device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Device.DateConnected">
            <summary>
            Returns the date and time the device last opened a connection.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Device.IsDetectionInProgress">
            <summary>
            Returns whether the device is currently being examined for GPS data.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Device.AllowConnections">
            <summary>
            Controls whether the device can be queried for GPS data.
            </summary>
            <remarks>In some cases, an attempt to open a connection to a device can cause problems.  For example,
            a serial port may be assigned to a barcode reader, or a Bluetooth device may represent a downstairs neighbor's
            computer.  This property allows a device to be left alone; no connection will be attempted to the device
            for any reason.</remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.Device.IsDetectionCompleted">
            <summary>
            Returns whether GPS protocol detection has been completed.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Device.IsGpsDevice">
            <summary>
            Returns whether the device has been confirmed as a GPS device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Device.SuccessfulDetectionCount">
            <summary>
            Controls the number of times this device has been confirmed as a GPS device.
            </summary>
            <remarks>In order to maximize the performance of detecting GPS devices, statistics are maintained for each device.  This
            property indicates how many times the device has been confirmed as a GPS device.  It will be incremented automatcially if
            a call to <strong>DetectProtocol</strong> has been successful.</remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.Device.FailedDetectionCount">
            <summary>
            Controls the number of times this device has failed to identify itself as a GPS device.
            </summary>
            <remarks>In order to prioritize and maximize performance of GPS device detection, statistics are kept for each device.
            These statistics control how detection is performed in the future.  For example, a device with a success rate of 100 and a failure
            rate of 1 would be tested before a device with a success rate of zero.  This property is updated automatically based on the
            results of a call to <strong>DetectProtocol</strong>.</remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.Device.Reliability">
            <summary>
            Returns the chance that a connection to the device will be successful.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Device.AverageConnectionTime">
            <summary>
            Returns the average amount of time required to open a connection.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Device.TotalConnectionTime">
            <summary>
            Returns the total amount of time spent so far opening a connection.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Device.DefaultReadTimeout">
            <summary>
            Controls the amount of time to wait before aborting a read operation.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Device.DefaultWriteTimeout">
            <summary>
            Controls the amount of time to wait before aborting a write operation.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.IO.DeviceEventArgs">
            <summary>
            Represents information about a GPS device when a device-related event is raised.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.IO.DeviceAnalysis">
            <summary>
            Represents an examination of a GPS device for its capabilities and health.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.DeviceAnalysis.SendAnonymousLog">
            <summary>
            Sends this analysis anonymously to GeoFrameworks for further study.
            </summary>
            <remarks><para>GeoFrameworks collects device detection information for the purposes of improving
            software, widening support for devices, and providing faster technical support.  This method
            will cause an HTTP POST to be sent to the GeoFrameworks web server with the values in this class.
            The information is collected anonymously.</para>
            <para>One benefit of sending an analysis is that it can instantly update statistics for supported
            GPS devices.  The anonymous results will be compiled into an RSS feed which developers can use to
            instantly be notified of both healthy and problematic devices.</para>
            <para>The GeoFrameworks server can handle repeated calls to this method, though requests should not
            be sent more than every few seconds.  Duplicate reports are automatically ignored by our system.  So
            long as customers are aware of the implications of an HTTP request (such as possible cell phone charges),
            you are welcome to use this functionality in your application.</para></remarks>
            <returns>A <strong>Boolean</strong> value, <strong>True</strong> if the HTTP response indicates success.</returns>
        </member>
        <member name="M:GeoFramework.Gps.IO.DeviceAnalysis.SendAnonymousLog(System.Uri)">
            <summary>
            Sends this analysis anonymously to the specified Uri for further study.
            </summary>
            <param name="uri"></param>
            <remarks><para>Developers may wish to generate detection logs from customers for the purposes of
            improving technical support.  This can also be used to collect statistics about GPS devices which
            customers use.  This method will create an HTTP POST to the specified address with the information in this
            class.</para>
            <para>The actual fields sent will vary depending on the type of object being reported.  Currently, this
            feature works for SerialDevice, BluetoothDevice, and GpsIntermediateDriver device objects.</para></remarks>
            <returns>A <strong>Boolean</strong> value, <strong>True</strong> if the HTTP response indicates success.</returns>
        </member>
        <member name="P:GeoFramework.Gps.IO.DeviceAnalysis.Log">
            <summary>
            Returns a log of activity while the device was tested.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.DeviceAnalysis.IsWorkingProperly">
            <summary>
            Returns whether the device is healthy
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.DeviceAnalysis.SupportedSentences">
            <summary>
            Returns NMEA sentences discovered during analysis.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.DeviceAnalysis.IsPositionSupported">
            <summary>
            Returns whether real-time latitude and longitude are reported by the device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.DeviceAnalysis.IsAltitudeSupported">
            <summary>
            Returns whether the distance above sea level is reported by the device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.DeviceAnalysis.IsBearingSupported">
            <summary>
            Returns whether the real-time direction of travel is reported by the device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.DeviceAnalysis.IsPrecisionSupported">
            <summary>
            Returns whether dilution of precision information is reported by the device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.DeviceAnalysis.IsSpeedSupported">
            <summary>
            Returns whether the real-time rate of travel is reported by the device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.DeviceAnalysis.IsSatellitesSupported">
            <summary>
            Returns whether real-time satellite information is reported by the device.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Emulators.Emulator">
            <summary>
            Represents a simulated GPS device.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Emulators.Emulator.SetRandom(System.Boolean)">
            <summary>
            Toggles the IsRandom flag.
            </summary>
            <param name="isRandom"> The state to toggle the flag. </param>
        </member>
        <member name="M:GeoFramework.Gps.Emulators.Emulator.Randomize">
            <summary>
            Randomizes the emulation by changing speed and direction
            </summary>
            <remarks>
            GPS coordinate emulation can be randomized by any number of factors, depending on the emulator type used.
            Any emulation can have it's direction and speed randomized within specified tolerances. By default, speed is 
            limited to between 0 (low) and 5 (high) meters/second and bearing changes are limited to +/- 45 degrees 
            (a 90 degree arc) from North (0) degrees.
            </remarks>
        </member>
        <member name="M:GeoFramework.Gps.Emulators.Emulator.Randomize(System.Random,GeoFramework.Speed,GeoFramework.Speed,GeoFramework.Azimuth,GeoFramework.Azimuth)">
            <summary>
            Randomizes the emulation by changing speed and direction
            </summary>
            <param name="seed"> The randomizer to use. </param>
            <param name="speedLow"> The minimum travel speed. </param>
            <param name="speedHigh"> The maximum travel speed. </param>
            <param name="bearingStart"> The initial direction of travel. </param>
            <param name="bearingArc"> The arc in which random directional changes will occur. </param>
            <remarks>
            GPS coordinate emulation can be randomized by any number of factors, depending on the emulator type used.
            Any emulation can have it's direction and speed randomized within specified tolerances. By default, speed is 
            limited to between 0 (low) and 5 (high) meters/second and bearing changes are limited to +/- 45 degrees 
            (a 90 degree arc) from North (0) degrees.
            </remarks>
        </member>
        <member name="M:GeoFramework.Gps.Emulators.Emulator.Close">
            <summary>
            Closes the emulation stream, but doesn't dispose of it.
            </summary>
            <remarks>
            The Emulator.Close() method simply terminates the thread that feeds data to
            a virtual Device. This allows the emulator to be reused indefinately.
            </remarks>
        </member>
        <member name="P:GeoFramework.Gps.Emulators.Emulator.Seed">
            <summary>
            Returns the current randomizer for emulation.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Emulators.Emulator.Interval">
            <summary>
            Returns the amount of time the emulator waits before processing new data.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Emulators.Emulator.EmulationInterval">
            <summary>
            Gets or sets the pulse of emulated data. Emulated data is served once per
            interval.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Emulators.Emulator.IsFixed">
            <summary>
            Indicates whether enough satellite signals exist to determine the current location.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Emulators.Emulator.IsRandom">
            <summary>
            Gets a value indicating whether or not the emulator is generating data that 
            changes in random manner.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.NativeMethods.DeviceIoControl(System.IntPtr,System.UInt32,System.IntPtr,System.UInt32,System.IntPtr,System.UInt32,System.UInt32@,System.IntPtr)">
            <summary>
            Interacts with a device driver
            </summary>
            <param name="hDevice"> A handle to a device opened with the CreateFile function. </param>
            <param name="dwIoControlCode"> A control code specific to the device driver. </param>
            <param name="lpInBuffer"></param>
            <param name="nInBufferSize"></param>
            <param name="lpOutBuffer"></param>
            <param name="nOutBufferSize"></param>
            <param name="lpBytesReturned"> The number of bytes returned in the out buffer. </param>
            <param name="lpOverlapped"> A pointer to a callback for async commands. </param>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.IO.NativeMethods.CreateFile(System.String,System.IO.FileAccess,System.IO.FileShare,System.UInt32,System.IO.FileMode,System.IO.FileAttributes,System.IntPtr)">
            <summary>
            Opens an IO channel with a physical device.
            </summary>
            <param name="lpFileName"> The device path </param>
            <param name="dwDesiredAccess"></param>
            <param name="dwShareMode"></param>
            <param name="lpSecurityAttributes"></param>
            <param name="dwCreationDisposition"></param>
            <param name="dwFlagsAndAttributes"></param>
            <param name="hTemplateFile"></param>
            <returns> A handle to the device. </returns>
        </member>
        <member name="M:GeoFramework.Gps.IO.NativeMethods.ReadFile(System.IntPtr,System.Byte[],System.UInt32,System.UInt32@,System.IntPtr)">
            <summary>
            Performs synchronous reads on an IO channel
            </summary>
            <param name="hDevice"> A handle to a device opened with the CreateFile function. </param>
            <param name="lpBuffer"></param>
            <param name="nNumberOfBytesToRead"></param>
            <param name="lpNumberOfBytesRead"></param>
            <param name="lpOverlapped"></param>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.IO.NativeMethods.WriteFile(System.IntPtr,System.Byte[],System.UInt32,System.UInt32@,System.IntPtr)">
            <summary>
            Performs synchronous writes on an IO channel
            </summary>
            <param name="hDevice"> A handle to a device opened with the CreateFile function. </param>
            <param name="lpBuffer"></param>
            <param name="nNumberOfBytesToWrite"></param>
            <param name="lpNumberOfBytesWritten"></param>
            <param name="lpOverlapped"></param>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.IO.NativeMethods.BTH_DEVICE_INFO.ToDevice">
            <summary>
            Converts the object into a BluetoothDevice object.
            </summary>
            <returns></returns>
        </member>
        <member name="P:GeoFramework.Gps.IO.NativeMethods.BTH_DEVICE_INFO.Address">
            <summary>
            Returns the address of the device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.NativeMethods.BTH_DEVICE_INFO.Name">
            <summary>
            Returns the friendly nameof the device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.NativeMethods.BthInquiryResult.Class">
            <summary>
            Returns the primary purpose of the device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.NativeMethods.BthInquiryResult.MinorDeviceClass">
            <summary>
            Returns a sub-category describing the purpose of the device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.NativeMethods.BthInquiryResult.ServiceClass">
            <summary>
            Returns the major type of device.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.IO.NativeMethods.BluetoothRadioMode">
            <summary>
            Indicates the state of a Bluetooth wireless receiver.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.IO.NativeMethods.BluetoothRadioMode.PowerOff">
            <summary>
            Bluetooth is disabled on the device.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.IO.NativeMethods.BluetoothRadioMode.Connectable">
            <summary>
            Bluetooth is connectable but your device cannot be discovered by other devices.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.IO.NativeMethods.BluetoothRadioMode.Discoverable">
            <summary>
            Bluetooth is activated and fully discoverable.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.IO.BluetoothAddress">
            <summary>
            Represents an address used to identify a unique Bluetooth device.
            </summary>
            <remarks>Each Bluetooth device has a unique address, in the form of a six-byte address.  </remarks>
        </member>
        <member name="M:GeoFramework.Gps.IO.BluetoothAddress.#ctor(System.Byte[])">
            <summary>
            Creates a new instance from the specified byte array.
            </summary>
            <param name="address"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.BluetoothAddress.#ctor(System.UInt64)">
            <summary>
            Creates a new instance using the specified unsigned 64-bit integer.
            </summary>
            <param name="address"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.BluetoothAddress.#ctor(System.Int64)">
            <summary>
            Creates a new instance using the specified 64-bit integer.
            </summary>
            <param name="address"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.BluetoothAddress.#ctor(System.String)">
            <summary>
            Creates a new instance using the specified string.
            </summary>
            <param name="address"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.BluetoothAddress.ToInt64">
            <summary>
            Returns the address as a 64-bit integer.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.IO.BluetoothAddress.Parse(System.String)">
            <summary>
            Converts the specified string into an address.
            </summary>
            <param name="address"></param>
            <returns></returns>
        </member>
        <member name="P:GeoFramework.Gps.IO.BluetoothAddress.Address">
            <summary>
            Returns the bytes of the address.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Controls.SatelliteSignalBar">
            <summary>
            Represents a control used to display satellite signal strengths.
            </summary>
        </member>
        <member name="T:GeoFramework.Drawing.DoubleBufferedControl">
            <summary>
            Represents a base class for designing flicker-free, multithreaded user
            controls.
            </summary>
            <remarks>
            	<para>This powerful and versatile class provides a framework upon which to create
                high-performance owner-drawn controls. Common rendering challenges such as
                multithreading, thread synchronization, double-buffering, performance tuning,
                platform tuning and animation are all handled by this class.</para>
            	<para>Controls which inherit from this class perform all paint operations by
                overriding the <strong>OnPaintOffScreen</strong> method, and optionally the
                <strong>OnPaintOffScreenBackground</strong> and
                <strong>OnPaintOffScreenAdornments</strong> methods. Controls which demand higher
                performance should perform all rendering on a separate thread. This is done by
                setting the <strong>IsPaintingOnSeparateThread</strong> property to
                <strong>True</strong>. Since the actual painting of the control is handled by this
                class, the <strong>OnPaint</strong> method should not be overridden.</para>
            	<para>When all off-screen paint operations have completed, this class will copy the
                contents of the off-screen bitmap to the on-screen bitmap which is visibly
                displayed on the control. By deferring all rendering operations to another thread,
                the user interface remains very responsive even during time-consuming paint
                operations.</para>
            	<para>Performance tuning is another major feature of this class. The
                <strong>OptimizationMode</strong> property gives developers the ability to tune
                rendering performance for animation speed, rendering quality, low CPU usage, or a
                balance between all three.</para>
            	<para>While thread synchronization has been implemented wherever possible in this
                class, and the class is almost entirely thread-safe, some care should be taken when
                accessing base <strong>Control</strong> properties from a separate thread. Even
                basic properties like <strong>Visible</strong> can fail, especially on the Compact
                Framework. For minimal threading issues, avoid reading control properties during
                paint events.</para>
            	<para>This class has been tuned to deliver the best performance on all versions of
                the .NET Framework (1.0, 1.1 and 2.0) as well as the .NET Compact Framework (1.0
                and 2.0). Compatibility is also managed internally, which simplifies the process of
                porting controls to the Compact Framework.</para>
            </remarks>
            <example>
                This example demonstrates how little code is required to use features like
                double-buffering and multithreading. <strong>IsPaintingOnSeparateThread</strong>
                enables multithreading, and all paint operations take place in the
                <strong>OnPaintOffScreen</strong> method instead of <strong>OnPaint</strong>. To
                prevent memory leaks, all GDI objects are disposed of during the
                <strong>Dispose</strong> method.
                <code lang="VB" title="[New Example]">
            Public Class MyControl 
                Inherits DoubleBufferedControl
                Dim MyBrush As New SolidBrush(Color.Blue)
                
                Sub New()
                    IsPaintingOnSeparateThread = True
                End Sub
                
                Protected Overrides Sub OnPaintOffScreen(ByVal e As CancelablePaintEventArgs)
                    e.Graphics.FillRectangle(MyBrush, New Rectangle(50, 50, 50, 50))
                End Sub
                
                Public Overrides Sub Dispose(ByVal disposing As Boolean)
                    MyBrush.Dispose()
                End Sub
            End Class
                </code>
            	<code lang="CS" title="[New Example]">
            public class MyControl : DoubleBufferedControl
            {
                SolidBrush MyBrush = new SolidBrush(Color.Blue);
                
                MyControl()
                {
                    IsPaintingOnSeparateThread = true;
                }
             
                protected override void OnPaintOffScreen(PaintEventArgs e)
                {
                    e.Graphics.FillRectangle(MyBrush, New Rectangle(50, 50, 50, 50));
                }
                
                public override void Dispose(bool disposing)
                {
                    MyBrush.Dispose();
                }
            }
                </code>
            </example>
        </member>
        <member name="M:GeoFramework.Drawing.DoubleBufferedControl.#ctor">
            <summary>Creates a new instance.</summary>        
        </member>
        <member name="M:GeoFramework.Drawing.DoubleBufferedControl.#ctor(System.String)">
            <summary>Creates a new instance using the specified thread name.</summary>
            <param name="threadName">
            The name associated with the rendering thread when rendering is multithreaded.
            This name appears in the Output window when the thread exits and can be useful during
            debugging. The name should also contain a company or support URL.
            </param>
        </member>
        <member name="M:GeoFramework.Drawing.DoubleBufferedControl.ResumePainting">
            <summary>
            Allows the control to be repainted after a call to SuspendPainting.
            </summary>
        </member>
        <member name="M:GeoFramework.Drawing.DoubleBufferedControl.SuspendPainting">
            <summary>
            Temporarily pauses all painting operations.
            </summary>
        </member>
        <member name="M:GeoFramework.Drawing.DoubleBufferedControl.InvokeRepaint">
            <summary>
            Repaints the control either directly or via the painting thread.
            </summary>
        </member>
        <member name="M:GeoFramework.Drawing.DoubleBufferedControl.Repaint">
            <summary>
            Redraws the control off-screen.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Drawing.DoubleBufferedControl.OnPaintException(System.Exception)">
            <summary>Occurs when an exception occurs during a multithreaded paint operation.</summary>
            <remarks>
            	<para>Exceptions caught during rendering iterations are channeled through this
                method instead of being re-thrown. This allows developers the ability to silently
                handle rendering problems without letting them interrupt the user interface. This
                method invokes the <strong>ExceptionOccurred</strong> event.</para>
            </remarks>
            <example>
                This example demonstrates how to be notified of rendering failures using the
                <strong>OnPaintException</strong> method. 
                <code lang="VB" title="[New Example]">
            Public Class MyControl 
                Inherits DoubleBufferedControl
                
                Protected Overrides Sub OnPaintOffScreen(ByVal e As CancelablePaintEventArgs)
                    ' Cause an error by using a null pen
                    e.Graphics.DrawRectangle(Nothing, Rectangle.Empty)
                End Sub
                
                Protected Overrides Sub OnPaintException(ByVal e As ExceptionEventArgs)
                    Throw e.Exception
                End Sub
            End Class
                </code>
            	<code lang="CS" title="[New Example]">
            public class MyControl : DoubleBufferedControl
            {
                protected override void OnPaintOffScreen(PaintEventArgs e)
                {
                    // Cause an error by using a null pen
                    e.Graphics.DrawRectangle(null, Rectangle.Empty);
                }
                
                protected override void OnPaintException(ExceptionEventArgs e)
                {
                    throw e.Exception;
                }
            }
                </code>
            </example>
            <param name="exception">An <strong>Exception</strong> object describing the rendering error.</param>
        </member>
        <member name="M:GeoFramework.Drawing.DoubleBufferedControl.OnPaintOffScreen(System.Windows.Forms.PaintEventArgs)">
            <summary>Performs all major painting operations for the control.</summary>
            <remarks>
            	<para>This method must be overridden. All painting operations for the control take
                place during this method. After this method completes, the
                <strong>OnPaintOffScreenAdornments</strong> method is called. When all painting
                operations have completed, the task of repainting the control visually takes place
                automatically.</para>
            	<para>Developers seeking to upgrade their existing controls to use this control
                must move all code from <strong>OnPaint</strong> into
                <strong>OnPaintOffScreen</strong>. For best performance, the
                <strong>OnPaint</strong> method would not be overridden at all.</para>
            </remarks>
            <param name="e">
            A <strong>CancelablePaintEventArgs</strong> object used for all painting
            operations, as well as to signal when a rendering iteration has been aborted.
            </param>
        </member>
        <member name="M:GeoFramework.Drawing.DoubleBufferedControl.OnPaintOffScreenBackground(System.Windows.Forms.PaintEventArgs)">
            <summary>
            Optional. Performs painting operations which draw the control's
            background.
            </summary>
            <remarks>
            	<para>This method provides the ability to prepare the background of the control
                before major painting operations take place. By default, this method calls the
                <strong>Graphics.Clear</strong> method to erase the control to the background
                color.</para>
            	<para>This method can be overridden to perform certain visual effects. For example,
                the <strong>PolarControl</strong> class, which inherits from this class, uses this
                method to apply a fading circular gradient to create a 3D illusion. Then, the
                <strong>OnPaintOffScreenAdornments</strong> method is also overridden to apply a
                second effect which gives the appearance of glass over the control. For more
                information on glass effects, see the <strong>Effect</strong> property of the
                <strong>PolarControl</strong> class.</para>
            </remarks>
            <param name="e">
            A <strong>CancelablePaintEventArgs</strong> object used for all painting
            operations, as well as to signal when a rendering iteration has been aborted.
            </param>
        </member>
        <member name="M:GeoFramework.Drawing.DoubleBufferedControl.OnPaintOffScreenAdornments(System.Windows.Forms.PaintEventArgs)">
            <summary>
            Optional. Performs any additional painting operations after the main portions of
            the control are painted.
            </summary>
            <remarks>
            By default, this method does nothing. This method can be overridden to apply
            certain details, however, such as a watermark, company logo, or glass. For example, the
            <strong>PolarControl</strong> class overrides this method to apply a glass effect on
            top of anything that has already been painted. For more information on glass effects,
            see the <strong>Effect</strong> property of the <strong>PolarControl</strong>
            class.
            </remarks>
            <param name="e">
            A <strong>CancelablePaintEventArgs</strong> object used for all painting
            operations, as well as to signal when a rendering iteration has been aborted.
            </param>
        </member>
        <member name="M:GeoFramework.Drawing.DoubleBufferedControl.OnInitialize">
            <summary>
            Occurs when the control is about to be rendered for the first time.
            </summary>
            <remarks>
            	<para>This virtual method provides the ability to prepare any local variables
                before the control is painted for the first time. This method is typically used to
                create GDI objects such as <strong>Pen</strong>, <strong>Brush</strong>, and
                <strong>Font</strong> immediately before they are needed. It is recommended that
                this event be used to create any such GDI objects. Additionally, it is also
                recommended that GDI objects get created outside of the
                <strong>OnPaintOffScreen</strong> method if they are used repeatedly.</para>
            	<para>For desktop framework applications, this method is called when the control's
                handle is created. For Compact Framework 1.0 applications, there is no handle
                creation event, so this method is called when the first call to
                <strong>OnPaint</strong> occurs.</para>
            </remarks>
        </member>
        <member name="M:GeoFramework.Drawing.DoubleBufferedControl.OnPaint(System.Windows.Forms.PaintEventArgs)">
            <summary>Occurs when the control is to be redrawn on-screen.</summary>
            <remarks>
            	<para>In the <strong>DoubleBufferedControl</strong> class, the process of painting
                the control on-screen is handled automatically. As a result, this method does not
                have to be overloaded to paint the control. In fact, this method should not be
                overridden to perform any painting operations because it would defeat the purpose
                of the control and re-introduce flickering problems.</para>
            	<para>Ideally, well-written controls will move any and all painting operations from
                the <strong>OnPaint</strong> method into the <strong>OnPaintOffScreen</strong>
                method, and avoid overriding <strong>OnPaint</strong> entirely. By keeping the
                <strong>OnPaint</strong> method as lightweight as possible, user interfaces remain
                responsive and free from flickering problems.</para>
            </remarks>
            <example>
            	<para>This example demonstrates how a user control is upgraded from Control to the
                <strong>DoubleBufferedControl</strong> class. Upgrading is straightforward: All
                painting operations are moved from <strong>OnPaint</strong> to
                <strong>OnPaintOffScreen</strong> and <strong>OnPaint</strong> is no longer
                overridden.</para>
            	<code lang="VB" title="[New Example]" description="Before: A control's paint operations before being upgraded to use the DoubleBufferedControl class.">
            Public Class MyControl 
                Inherits Control
                Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
                    Dim MyBrush As New SolidBrush(Color.Blue)
                    e.Graphics.FillRectangle(MyBrush, New Rectangle(50, 50, 50, 50))
                    MyBrush.Dispose();
                End Sub
            End Class
                </code>
            	<code lang="CS" title="[New Example]" description="Before: A control's paint operations before being upgraded to use the DoubleBufferedControl class.">
            public class MyControl : Control
            {
                protected override void OnPaint(PaintEventArgs e)
                {
                    SolidBrush MyBrush = new SolidBrush(Color.Blue);
                    e.Graphics.FillRectangle(MyBrush, new Rectangle(50, 50, 50, 50));
                    MyBrush.Dispose();
                }
            }
                </code>
            	<code lang="VB" title="[New Example]" description="After: A control's paint operations after upgrading to DoubleBufferedControl.">
            Public Class MyControl 
                Inherits DoubleBufferedControl
                Protected Overrides Sub OnPaintOffScreen(ByVal e As CancelablePaintEventArgs)
                    Dim MyBrush As New SolidBrush(Color.Blue)
                    e.Graphics.FillRectangle(MyBrush, New Rectangle(50, 50, 50, 50))
                    MyBrush.Dispose();
                End Sub
            End Class
                </code>
            	<code lang="CS" title="[New Example]">
            public class MyControl : DoubleBufferedControl
            {
                protected override void OnPaintOffScreen(PaintEventArgs e)
                {
                    SolidBrush MyBrush = new SolidBrush(Color.Blue);
                    e.Graphics.FillRectangle(MyBrush, new Rectangle(50, 50, 50, 50));
                    MyBrush.Dispose();
                }
            }
                </code>
            </example>
        </member>
        <member name="M:GeoFramework.Drawing.DoubleBufferedControl.Dispose(System.Boolean)">
            <summary>Releases memory and GDI resources created by the control.</summary>
            <remarks>
            	<para>This method is very important to implement properly when working with
                controls. Any <strong>Brush</strong>, <strong>Pen</strong>, <strong>Font</strong>,
                <strong>Matrix</strong>, <strong>GraphicsPath</strong>, <strong>Region</strong> or
                other GDI+ object containing a <strong>Dispose</strong> method must be disposed of
                before they are destructed by the garbage collector.</para>
            	<para>Well-written controls will create unmanaged GDI+ objects outside of the
                <strong>OnPaintOffScreen</strong> method, then dispose of them during the
                <strong>Dispose</strong> method. This practice improves performance by creating as
                new new objects and resources as possible while minimizing problems which may occur
                due to resources which are not properly released.</para>
            	<para>Failure to call the <strong>Dispose</strong> method on GDI+ objects will
                cause memory leaks which will slowly eat up available memory until the application
                can no longer function. Use the "GDI Objects" column of the Windows Task Manager to
                monitor the number of GDI objects allocated. Memory leaks will cause the GDI Object
                count to increase continuously, whereas well-written controls will experience a GDI
                Object count that remains fairly constant over a longer period of time.</para>
            	<para>To view the GDI Objects column in the Windows Task Manager:</para>
            	<para class="xmldocnumberedlist"></para>
            	<list type="bullet">
            		<item>Open the Windows Task Manager</item>
            		<item>Select the "Processes" tab.</item>
            		<item>Select "Choose Columns..." from the View menu.</item>
            		<item>Check the "GDI Objects" box and click OK.</item>
            	</list>
            </remarks>
            <example>
                This example demonstrates how a control might create subtle problems when the
                <strong>Dispose</strong> method is not used on every GDI+ object. 
                <code lang="VB" title="[New Example]" description="An example of a poorly written control: A new SolidBrush is created on every paint iteration when it only needs to be created once. The brush is never disposed of, creating a memory leak.">
            Public Class MyControl 
                Inherits DoubleBufferedControl
                Protected Overrides Sub OnPaintOffScreen(ByVal e As CancelablePaintEventArgs)
                    Dim MyBrush As New SolidBrush(Color.Blue)
                    e.Graphics.FillRectangle(MyBrush, New Rectangle(50, 50, 50, 50))
                End Sub
                
                ' NOTE: MyBrush is never disposed.  A memory leak
                ' will occur!
            End Class
                </code>
            	<code lang="CS" title="[New Example]" description="An example of a poorly written control: A new SolidBrush is created on every paint iteration when it only needs to be created once. The brush is never disposed of, creating a memory leak.">
            public class MyControl : DoubleBufferedControl
            {
                protected override void OnPaintOffScreen(PaintEventArgs e)
                {
                    SolidBrush MyBrush = new SolidBrush(Color.Blue);
                    e.Graphics.FillRectangle(MyBrush, New Rectangle(50, 50, 50, 50));
                }
                
                // NOTE: MyBrush is never disposed.  A memory leak
                // will occur!
            }
                </code>
            	<code lang="VB" title="[New Example]" description="Problems are solved by properly implementing the Dispose method. Performance is improved by moving the SolidBrush declaration out of OnPaintOffScreen.">
            Public Class MyControl 
                Inherits DoubleBufferedControl
                ' 1. GDI objects are created outside of the OnPaintOffScreen
                '    methods whenever possible.
                Dim MyBrush As New SolidBrush(Color.Blue)
                
                Protected Overrides Sub OnPaintOffScreen(ByVal e As CancelablePaintEventArgs)
                    ' 2. The paint method is as lightweight as possible,
                    '    improving rendering performance
                    e.Graphics.FillRectangle(MyBrush, New Rectangle(50, 50, 50, 50))
                End Sub
                
                Public Overrides Sub Dispose(ByVal disposing As Boolean)
                    ' 3. Any GDI+ objects are disposed of properly    
                    MyBrush.Dispose()
                End Sub
            End Class
                </code>
            	<code lang="CS" title="[New Example]" description="Problems are solved by properly implementing the Dispose method. Performance is improved by moving the SolidBrush declaration out of OnPaintOffScreen.">
            public class MyControl : DoubleBufferedControl
            {
                // 1. GDI objects are created outside of the OnPaintOffScreen
                //    methods whenever possible.
                SolidBrush MyBrush = new SolidBrush(Color.Blue);
                
                protected override void OnPaintOffScreen(PaintEventArgs e)
                {
                    // 2. The paint method is as lightweight as possible,
                    //    improving rendering performance
                    e.Graphics.FillRectangle(MyBrush, New Rectangle(50, 50, 50, 50));
                }
                
                public override void Dispose(bool disposing)
                {
                    // 3. Any GDI+ objects are disposed of properly    
                    MyBrush.Dispose();
                }
            }
                </code>
            </example>
        </member>
        <member name="E:GeoFramework.Drawing.DoubleBufferedControl.ExceptionOccurred">
            <summary>Occurs when an exception is thrown during off-screen painting operations.</summary>
            <remarks>
            	<para>When the control is rendering on a separate thread, exceptions cannot be
                caught by a regular <strong>Try..Catch</strong> statement. Exceptions are instead
                channeled through this event. The control will also attempt to display exception
                information on-screen to inform developers of the code which failed.</para>
            	<para>It is important to capture this event or override the
                <strong>OnPaintException</strong> method in order to be properly notified of
                problems. Without doing this, the control could fail to paint properly yet give no
                indication that there is a problem.</para>
            </remarks>
            <example>
                This example hooks into the <strong>ExceptionOccurred</strong> event of a control
                in order to handle painting exceptions. 
                <code lang="VB" title="[New Example]">
            Public Class MyControl
                Inherits DoubleBufferedControl
                
                Sub New()
                    ' Receive notifications of paint problems
                    AddHandler ExceptionOccurred, AddressOf HandleExceptions
                End Sub
                
                Protected Overrides Sub OnPaintOffScreen(ByVal e As CancelablePaintEventArgs)
                    ' Try to paint with a null Pen
                    e.Graphics.DrawRectangle(Nothing, Rectangle.Empty)
                End Sub
                
                Private Sub HandleExceptions(ByVal sender As Object, ByVal e As ExceptionEventArgs)
                    ' Write the error to the Debug window
                    Debug.WriteLine(e.Exception.ToString())
                End Sub
            End Class
                </code>
            	<code lang="CS" title="[New Example]">
            public class MyControl : DoubleBufferedControl
            {   
                MyControl()
                {
                    // Receive notifications of paint problems
                    ExceptionOccurred += new ExceptionEventHandler(HandleExceptions);
                }
                
                protected override void OnPaintOffScreen(PaintEventArgs e)
                {
                    // Try to paint with a null Pen. 
                    e.Graphics.DrawRectangle(null, Rectangle.Empty);
                }
                
                private sub HandleExceptions(object sender, ExceptionEventArgs e)
                {
                    // Write the error to the Console
                    Console.WriteLine(e.Exception.ToString());
                }
            }
                </code>
            </example>
        </member>
        <member name="E:GeoFramework.Drawing.DoubleBufferedControl.PaintOffScreen">
            <summary>
            Occurs when the control is to be redrawn in the background.
            </summary>
            <remarks>In the DoubleBufferedControl class, all painting occurs off-screen.  Then, the off-screen bitmap is quickly
            drawn on-screen when painting completes.  This event is called immediately after the PaintOffScreenBackground event.</remarks>
        </member>
        <member name="E:GeoFramework.Drawing.DoubleBufferedControl.PaintOffScreenBackground">
            <summary>
            Occurs when the control's background is to be redrawn before the main graphics of the control.
            </summary>
            <remarks>In the DoubleBufferedControl class, all painting occurs off-screen.  Then, the off-screen bitmap is quickly
            drawn on-screen when painting completes.   This event is called to paint any background graphics before the main elements of the
            control are drawn.  Some painting effects, such as glass or plastic, use this event along with PaintOffScreenAdornments
            to add annotations to the control.  This event is called immediately before the PaintOffScreen event.</remarks>
        </member>
        <member name="E:GeoFramework.Drawing.DoubleBufferedControl.PaintOffScreenAdornments">
            <summary>
            Occurs when additional graphics or annotations must be added to the control.
            </summary>
            <remarks>In the DoubleBufferedControl class, all painting occurs off-screen.  Then, the off-screen bitmap is quickly
            drawn on-screen when painting completes.   This event is called to paint any additional graphics after the main elements of the
            control are drawn.  Some painting effects, such as glass, adding text or logos, use this event to draw on the control.  This event is called immediately after the PaintOffScreen event.</remarks>
        </member>
        <member name="P:GeoFramework.Drawing.DoubleBufferedControl.IsDesignMode">
            <summary>
            Indicates whether the control is currently running inside of a Windows Forms designer.
            </summary>
        </member>
        <member name="P:GeoFramework.Drawing.DoubleBufferedControl.IsDisposed">
            <summary>Indicates if the control and its resources have been disposed.</summary>
        </member>
        <member name="P:GeoFramework.Drawing.DoubleBufferedControl.IsPaintingOnSeparateThread">
            <summary>
            Indicates if all off-screen rendering takes place on a separate thread.
            </summary>
            <remarks>
            	<para>This powerful property controls whether or not rendering operations are
                multithreaded. When set to <strong>True</strong>, a new thread is launched and all
                subsequent calls to <strong>OnPaintOffScreen</strong>,
                <strong>OnPaintOffScreenBackground</strong> and
                <strong>OnPaintOffScreenAdornments</strong> occur on that thread. Thread
                synchronization features are enabled so that painting operations never interfere
                with rendering operations. The priority of the rendering thread is controlled via
                the <strong>ThreadPriority</strong> property.</para>
            	<para>When this property is <strong>False</strong>, the rendering thread is torn
                down and all rendering occurs on the owner's thread. Controls which perform
                significant painting operations should enable this property to allow the user
                interface to be more responsive. As a general rule, any intense processing should
                be moved away from the user interface thread.</para>
            </remarks>
            <example>
                This example instructs the control to perform all rendering on a separate thread.
                Note that all thread management is handled automatically -- the only operation
                required is enabling the property. 
                <code lang="VB" title="[New Example]">
            Public Class MyControl 
                Inherits DoubleBufferedControl
                
                Sub New()
                    ' Enable multithreading
                    IsPaintingOnSeparateThread = True
                End Sub
                
                ' This method is now called from another thread
                Protected Overrides Sub OnPaintOffScreen(ByVal e As CancelablePaintEventArgs)
                    Dim MyBrush As New SolidBrush(Color.Blue)
                    e.Graphics.FillRectangle(MyBrush, New Rectangle(50, 50, 50, 50))
                    MyBrush.Dispose()
                End Sub
            End Class
                </code>
            	<code lang="CS" title="[New Example]">
            public class MyControl : DoubleBufferedControl
            {    
                MyControl()
                {
                    // Enable multithreading
                    IsPaintingOnSeparateThread = true;
                }
                
                // This method is now called from another thread
                protected overrides void OnPaintOffScreen(PaintEventArgs e)
                {
                    SolidBrush MyBrush = new SolidBrush(Color.Blue);
                    e.Graphics.FillRectangle(MyBrush, new Rectangle(50, 50, 50, 50));
                    MyBrush.Dispose();
                }
            }
                </code>
            </example>
        </member>
        <member name="P:GeoFramework.Drawing.DoubleBufferedControl.OffScreenBitmapOffset">
            <summary>
            Controls the upper-left portion of the off-screen bitmap to paint
            on-screen.
            </summary>
            <value>
            A <strong>Point</strong> structure indicating the corner of the off-screen bitmap
            to draw on-screen. Default is <strong>Empty</strong>.
            </value>
            <remarks>
            	<para>If the size of the off-screen bitmap is different than the on-screen bitmap,
                a control may need to draw different portions of the off-screen bitmap. For
                example, if an off-screen bitmap is 200x200 pixels but the visible portion of the
                control is only 50x50 pixels, an offset of (10,10) instructs the control to paint
                the off-screen bitmap from (10,10)-(60,60).</para>
            	<para>for most controls, this property does not need to be overridden. Controls
                which override this property also override the <strong>OffScreenBitmapSize</strong>
                property to specify a size defferent than the visible portion of the
                control.</para>
            </remarks>
        </member>
        <member name="P:GeoFramework.Drawing.DoubleBufferedControl.OffScreenBitmap">
            <summary>Returns the bitmap used for off-screen painting operations.</summary>
            <value>A <strong>Bitmap</strong> containing off-screen painted data.</value>
            <remarks>
            	<para>This control maintains two separate bitmaps: an "off-screen" bitmap, where
                all painting operations take place, and an "on-screen" bitmap which is displayed
                visually to the user. When an off-screen painting operation completes successfully,
                the off-screen bitmap is copies to the on-screen bitmap, then painted on the
                display. This property returns the off-screen bitmap created during the most recent
                paint iteration.</para>
            </remarks>
        </member>
        <member name="P:GeoFramework.Drawing.DoubleBufferedControl.ThreadPriority">
            <summary>Controls the relative priority of multithreaded painting operations.</summary>
            <value>
            A <strong>ThreadPriority</strong> value. Default is
            <strong>Normal</strong>.
            </value>
            <remarks>
            Painting operations may require more CPU time if they represent the majority of
            a user interface, or if painting operations are more complicated. Performance can be
            improved by increasing the priority of the rendering thread. Likewise, if a control is
            of minor importance to an application, a lower thread priority can improve performance
            in more important areas of the application.
            </remarks>
            <example>
                This example enables multithreaded painting then changes the priority of the
                rendering thread to <strong>Lowest</strong> to give the rest of the application
                more CPU time. 
                <code lang="VB" title="[New Example]">
            Public Class MyControl 
                Inherits DoubleBufferedControl
                
                Sub New()
                    ' Enable multithreading
                    IsPaintingOnSeparateThread = True
                    ' Set a low thread priority
                    ThreadPriority = ThreadPriority.Lowest
                End Sub
                
                ' This method is now called from another thread
                Protected Overrides Sub OnPaintOffScreen(ByVal e As CancelablePaintEventArgs)
                   ' ...etc.
                End Sub
            End Class
                </code>
            	<code lang="CS" title="[New Example]">
            public class MyControl : DoubleBufferedControl
            {
                MyControl()
                {
                    // Enable multithreading
                    IsPaintingOnSeparateThread = true;
                    // Set a low thread priority
                    ThreadPriority = ThreadPriority.Lowest;
                }
                
                // This method is now called from another thread
                protected override void OnPaintOffScreen(PaintEventArgs e)
                {
                   // ...etc.
                }
            }
                </code>
            </example>
        </member>
        <member name="P:GeoFramework.Drawing.DoubleBufferedControl.BackColor">
            <summary>Controls the background color of the control.</summary>
            <value>A <strong>Color</strong> structure representing the background color.</value>
            <remarks>
            The default <strong>BackColor</strong> property of the <strong>Control</strong>
            class cannot be accessed from a thread other than the UI thread. As a result, this
            property was shadowed in order to make it thread-safe.
            </remarks>
        </member>
        <member name="P:GeoFramework.Drawing.DoubleBufferedControl.IsExceptionTextAllowed">
            <summary>
            Controls whether exception messages are displayed on the control.
            </summary>
            <remarks>In some situations, an exception can occur during a paint operation.  To notify
            developers of the problem, the error text is written directly to the control.  This behavior
            may not be suitable for some developers, however, who want to trap errors more gracefully.
            Setting this property to False causes error messages to never be drawn on the control.  The
            ExceptionOccurred event should instead be used to gracefully handle errors when they occur.</remarks>
        </member>
        <member name="P:GeoFramework.Drawing.DoubleBufferedControl.Width">
            <summary>Returns the width of the control in pixels.</summary>
            <value>An <strong>Integer</strong> indicating the width of the control in pixels.</value>
            <remarks>
            The default <strong>Width</strong> property of the <strong>Control</strong> class
            cannot be accessed from a thread other than the UI thread. As a result, this property
            was shadowed in order to make it thread-safe.
            </remarks>
        </member>
        <member name="P:GeoFramework.Drawing.DoubleBufferedControl.Height">
            <remarks>
            The default <strong>Height</strong> property of the <strong>Control</strong>
            class cannot be accessed from a thread other than the UI thread. As a result, this
            property was shadowed in order to make it thread-safe.
            </remarks>
            <summary>Returns the height of the control in pixels.</summary>
            <value>An <strong>Integer</strong> indicating the width of the control in pixels.</value>
        </member>
        <member name="P:GeoFramework.Drawing.DoubleBufferedControl.OnScreenBitmap">
            <summary>Returns the bitmap used to paint the visible portion of the control.</summary>
            <value>A <strong>Bitmap</strong> containing data to be painted on the display.</value>
            <remarks>
            	<para>This control maintains two separate bitmaps: an "off-screen" bitmap, where
                all painting operations take place, and an "on-screen" bitmap which is displayed
                visually to the user. When an off-screen painting operation completes successfully,
                the off-screen bitmap is copies to the on-screen bitmap, then painted on the
                display. This property returns the on-screen bitmap matching what is actually seen
                in the control.</para>
            </remarks>
        </member>
        <member name="P:GeoFramework.Drawing.DoubleBufferedControl.IsUpperLeftCornerAdjusted">
            <summary>
            Controls whether bitmaps rendered on-screen are shifted slightly to correct display problems.
            </summary>
            <remarks>When Compact Framework 1.0 applications are run on newer PocketPC devices which
            support higher resolutions, a rendering bug can occur.  This bug, caused by the Compact Framework,
            causes bitmaps to be drawn in the wrong location, inaccurate by one pixel.  The end result is a 
            black "corner" in the upper-left of the control.  This property, when enabled, will correct
            the problem by scaling the bitmap one pixel larger during rendering.</remarks>
        </member>
        <member name="P:GeoFramework.Drawing.DoubleBufferedControl.Center">
            <summary>
            Indicates the point at the center of the control.
            </summary>
            <remarks>This property is typically used for centering items in the control.  This property
            is updated automatically as the control is resized.</remarks>
            <value>
            A <strong>Point</strong> structure representing the pixel at the center of the
            control.
            </value>
            <example>
                This example uses the <strong>Center</strong> property to center a rectangle in the
                middle of the control. 
                <code lang="VB" title="[New Example]">
            Public Class MyControl 
                Inherits DoubleBufferedControl
             
                Protected Overrides Sub OnPaintOffScreen(ByVal e As CancelablePaintEventArgs)
                    ' Center a rectangle in the middle of the control
                    Dim MyShape As New Rectangle(Center.X - 25, Center.Y - 25, 50, 50)
                    ' Now paint it        
                    Dim MyBrush As New SolidBrush(Color.Green)
                    e.Graphics.FillRectangle(MyBrush, MyShape)
                    MyBrush.Dispose()
                End Sub
            End Class
                </code>
            	<code lang="CS" title="[New Example]">
            public class MyControl : DoubleBufferedControl
            {
                protected override void OnPaintOffScreen(PaintEventArgs e)
                {
                    // Center a rectangle in the middle of the control
                    Rectangle MyShape = new Rectangle(Center.X - 25, Center.Y - 25, 50, 50);
                    // Now paint it        
                    SolidBrush MyBrush = new SolidBrush(Color.Green);
                    e.Graphics.FillRectangle(MyBrush, MyShape);
                    MyBrush.Dispose();
                }
            }
                </code>
            </example>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.IMagneticVariationSentence">
            <summary>
            Represents an NMEA sentence which contains 
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Interpreter">
            <summary>Represents a base class for designing a GPS data interpreter.</summary>
            <remarks>
            	<para>This class serves as the base class for all GPS data interpreters, regardless
                of the protocol being used. For example, the <strong>NmeaInterpreter</strong> class
                inherits from this class to process NMEA-0183 data from any data source. This class
                provides basic functionality to start, pause, resume and stop the processing of GPS
                data, and provides management of a thread used to process the next set of incoming
                data.</para>
            	<para>Inheritors should override the <strong>OnReadPacket</strong> event and
                provide functionality to read the next packet of data from the underlying stream.
                All raw GPS data must be provided in the form of a <strong>Stream</strong> object,
                and the method should read and process only a single packet of data.</para>
            </remarks>
            <seealso cref="M:GeoFramework.Gps.Interpreter.OnReadPacket">OnReadPacket Method</seealso>
        </member>
        <member name="F:GeoFramework.Gps.Interpreter.SyncRoot">
            <summary>Represents a synchronization object which is locked during state changes.</summary>
            <value>An <strong>Object</strong>.</value>
            <remarks>
            	<para>Since the <strong>Interpreter</strong> class is
                multithreaded, this object is used to prevent changes in state from all happening
                at once. For example, if two threads attempt to start and stop the interpreter,
                this object is locked so that only one action can occur at a time. This approach
                greatly improves the stability of the class.</para>
            	<para>By default, this object is locked during calls to <strong>Start</strong>,
                <strong>Stop</strong>, <strong>Pause</strong>, <strong>Resume</strong> and
                <strong>OnReadPacket</strong>.</para>
            </remarks>
        </member>
        <member name="F:GeoFramework.Gps.Interpreter.RecordingSyncRoot">
            <summary>
            Represents a synchronization object which is locked during state changes to recording.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.OnStarting">
            <summary>
            Occurs immediately before a connection is attempted.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.OnStarted">
            <summary>
             Occurs immediately before data is processed.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.OnStopping">
            <summary>
            Occurs immediately before the interpreter is shut down.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.OnStopped">
            <summary>
            Occurs immediately after the interpreter has been shut down.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.OnConnectionLost(System.Exception)">
            <summary>
            Occurs when a connection to a GPS device is suddenly lost.
            </summary>
            <param name="ex">An <strong>Exception</strong> which further explains why the connection was lost.</param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.OnPaused">
            <summary>
            Occurs when the interpreter has temporarily stopped processing data.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.OnResumed">
            <summary>
            Occurs when the interpreter is no longer paused.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.OnExceptionOccurred(System.Exception)">
            <summary>
            Occurs when an exception is trapped by the interpreter's thread.
            </summary>
            <param name="ex"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.#ctor">
            <summary>
            Creates a new instance.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.Start">
            <summary>
            Starts processing GPS data using any available GPS device.
            </summary>
            <remarks>This method is used to begin processing GPS data.  If no GPS devices are known, GPS.NET will search for GPS devices and use the
            first device it finds.  If no device can be found, an exception is raised.</remarks>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.Start(GeoFramework.Gps.IO.Device)">
            <summary>
            Starts processing GPS data from the specified stream.
            </summary>
            <remarks>
            This method will start the <strong>Interpreter</strong> using a separate thread.
            The <strong>OnReadPacket</strong> is then called repeatedly from that thread to process
            incoming data. The Pause, Resume and Stop methods are typically called after this
            method to change the interpreter's behavior. Finally, a call to
            <strong>Dispose</strong> will close the underlying stream, stop all processing, and
            shut down the processing thread.
            </remarks>
            <param name="stream">A <strong>Stream</strong> object providing GPS data to process.</param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.StartRecording(System.IO.Stream)">
            <summary>
            Begins recording all received data to the specified stream.
            </summary>
            <param name="output"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.StopRecording">
            <summary>
            Causes the interpreter to no longer record incoming GPS data.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.Stop">
            <summary>Stops all processing of GPS data.</summary>
            <remarks>
            This method is used some time after a call to the <strong>Start</strong> method.
            When called, the GPS processing thread is immediately shut down and all processing
            stops.
            </remarks>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.Pause">
            <summary>Temporarily halts processing of GPS data.</summary>
            <remarks>
            This method will suspend the processing of GPS data, but will keep the thread and
            raw GPS data stream open. This method is intended as a temporary means of stopping
            processing. An interpreter should not be paused for an extended period of time because
            it can cause a backlog of GPS data
            </remarks>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.Resume">
            <summary>
            Un-pauses the interpreter from a previously paused state.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.Initialize">
            <summary>
            Resets the interpreter to it's default values.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.SetDateTimes(System.DateTime)">
            <summary>
            Updates the UTC and local date/time to the specified UTC value.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.SetFixQuality(GeoFramework.Gps.FixQuality)">
            <summary>
            Updates the fix quality to the specified value.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.SetFixMode(GeoFramework.Gps.FixMode)">
            <summary>
            Updates the fix mode to the specified value.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.SetFixMethod(GeoFramework.Gps.FixMethod)">
            <summary>
            Updates the fix method to the specified value.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.SetHorizontalDilutionOfPrecision(GeoFramework.Gps.DilutionOfPrecision)">
            <summary>
            Updates the precision as it relates to latitude and longitude.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.SetVerticalDilutionOfPrecision(GeoFramework.Gps.DilutionOfPrecision)">
            <summary>
            Updates the precision as it relates to altitude.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.SetMeanDilutionOfPrecision(GeoFramework.Gps.DilutionOfPrecision)">
            <summary>
            Updates the precision as it relates to latitude, longitude and altitude.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.SetFixStatus(GeoFramework.Gps.FixStatus)">
            <summary>
            Updates the fix status to the specified value.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.SetMagneticVariation(GeoFramework.Longitude)">
            <summary>
            Updates the difference between Magnetic North and True North.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.SetPosition(GeoFramework.Position)">
            <summary>
            Updates the current location on Earth's surface.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.SetBearing(GeoFramework.Azimuth)">
            <summary>
            Updates the current direction of travel.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.AppendSatellites(System.Collections.Generic.IList{GeoFramework.Gps.Satellite})">
            <summary>
            Updates the list of known GPS satellites.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.SetFixedSatellites(System.Collections.Generic.IList{GeoFramework.Gps.Satellite})">
            <summary>
            Updates the list of fixed GPS satellites.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.SetSpeed(GeoFramework.Speed)">
            <summary>
            Updates the current rate of travel.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.SetGeoidalSeparation(GeoFramework.Distance)">
            <summary>
            Updates the distance between the ellipsoid surface and the current altitude.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.SetAltitude(GeoFramework.Distance)">
            <summary>
            Updates the current distance above sea level.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.SetAltitudeAboveEllipsoid(GeoFramework.Distance)">
            <summary>
            Updates the current distance above the ellipsoid surface.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.OnReadPacket">
            <summary>
            Occurs when new data should be read from the underlying device.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Interpreter.OnDeviceChanged">
            <summary>
            Occurs when the interpreter is using a different device for raw data.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.AltitudeChanged">
            <summary>
            Occurs when the current distance above sea level has changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.AltitudeReceived">
            <summary>
            Occurs when a new altitude report has been received, even if the value has not changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.AltitudeAboveEllipsoidChanged">
            <summary>
            Occurs when the current distance above the ellipsoid has changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.AltitudeAboveEllipsoidReceived">
            <summary>
            Occurs when a new altitude-above-ellipsoid report has been received, even if the value has not changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.BearingChanged">
            <summary>
            Occurs when the current direction of travel has changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.BearingReceived">
            <summary>
            Occurs when a new bearing report has been received, even if the value has not changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.FixQualityChanged">
            <summary>
            Occurs when the fix quality has changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.FixModeChanged">
            <summary>
            Occurs when the fix mode has changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.FixMethodChanged">
            <summary>
            Occurs when the fix method has changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.UtcDateTimeChanged">
            <summary>
            Occurs when the GPS-derived date and time has changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.DateTimeChanged">
            <summary>
            Occurs when the GPS-derived local time has changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.FixAcquired">
            <summary>
            Occurs when at least three GPS satellite signals are available to calculate the current location.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.FixLost">
            <summary>
            Occurs when less than three GPS satellite signals are available.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.PositionChanged">
            <summary>
            Occurs when the current location on Earth has changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.PositionReceived">
            <summary>
            Occurs when a new position report has been received, even if the value has not changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.MagneticVariationAvailable">
            <summary>Occurs when the magnetic variation for the current location becomes known.</summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.SpeedChanged">
            <summary>
            Occurs when the current rate of travel has changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.SpeedReceived">
            <summary>
            Occurs when a new speed report has been received, even if the value has not changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.HorizontalDilutionOfPrecisionChanged">
            <summary>
            Occurs when precision as it relates to latitude and longitude has changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.VerticalDilutionOfPrecisionChanged">
            <summary>
            Occurs when precision as it relates to altitude has changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.MeanDilutionOfPrecisionChanged">
            <summary>
            Occurs when precision as it relates to latitude, longitude and altitude has changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.SatellitesChanged">
            <summary>
            Occurs when GPS satellite information has changed.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.Starting">
            <summary>
            Occurs when the interpreter is about to start.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.Started">
            <summary>
            Occurs when the interpreter is now processing GPS data.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.Stopping">
            <summary>
            Occurs when the interpreter is about to stop.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.Stopped">
            <summary>
            Occurs when the interpreter has stopped processing GPS data.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.Paused">
            <summary>
            Occurs when the interpreter has temporarily stopped processing GPS data.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.Resumed">
            <summary>
            Occurs when the interpreter is no longer paused.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.ExceptionOccurred">
            <summary>
            Occurs when an exception has happened during processing.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Interpreter.ConnectionLost">
            <summary>
            Occurs when the flow of GPS data has been suddenly interrupted.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.ReadTimeout">
            <summary>
            Controls the amount of time to wait for the next packet of GPS data to arrive.
            </summary>
            <remarks></remarks>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.CommandTimeout">
            <summary>
            Controls the amount of time allowed to perform a start, stop, pause or resume action.
            </summary>
            <remarks>The <strong>Interpreter</strong> class is multithreaded and is also thread-safe.  Still, however, in some rare cases,
            two threads may attempt to change the state of the interpreter at the same time.  Critical sections will allow both threads to
            succees whenever possible, but in the event of a deadlock, this property control how much time to allow before giving up.</remarks>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.Device">
            <summary>
            Returns the device providing raw GPS data to the interpreter.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.ThreadPriority">
            <summary>
            Controls the priority of the thread which processes GPS data.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.DateTime">
            <summary>
            Returns the GPS-derived date and time, adjusted to the local time zone.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.UtcDateTime">
            <summary>
            Returns the GPS-derived date and time in UTC (GMT-0).
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.HorizontalDilutionOfPrecision">
            <summary>
            Returns the current estimated precision as it relates to latitude and longitude.
            </summary>
            <remarks> Horizontal Dilution of Precision (HDOP) is the accumulated 
            error of latitude and longitude coordinates in X and Y directions
            (displacement on the surface of the ellipsoid).
            </remarks>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.VerticalDilutionOfPrecision">
            <summary>
            Returns the current estimated precision as it relates to altitude.
            </summary>
            <remarks> Vertical Dilution of Precision (VDOP) is the accumulated 
            error of latitude and longitude coordinates in the Z direction (measurement 
            from the center of the ellipsoid).
            </remarks>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.FixMode">
            <summary>
            Returns the kind of fix acquired by the GPS device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.FixedSatelliteCount">
            <summary>
            Returns the number of satellites being used to calculate the current location.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.FixQuality">
            <summary>
            Returns the quality of the fix and what kinds of technologies are involved.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.IsFixRequired">
            <summary>
            Controls whether GPS data is ignored until a fix is acquired.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.IsFixed">
            <summary>
            Returns whether a fix is currently acquired by the GPS device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.MagneticVariation">
            <summary>
            Returns the difference between magnetic North and True North.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.Position">
            <summary>
            Returns the current location on Earth's surface.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.FixPrecisionEstimate">
            <summary>
            Returns the avereage precision tolerance based on the fix quality reported
            by the device.
            </summary>
            <remarks>
            This property returns the estimated error attributed to the device. To get 
            a total error estimation, add the Horizontal or the Mean DOP to the 
            FixPrecisionEstimate.
            </remarks>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.Speed">
            <summary>
            Returns the current rate of travel.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.Altitude">
            <summary>
            Returns the current distance above sea level.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.MaximumHorizontalDilutionOfPrecision">
            <summary>
            Controls the largest amount of precision error allowed before GPS data is ignored.
            </summary>
            <remarks>This property is important for commercial GPS softwaqre development because it helps the interpreter determine
            when GPS data reports are precise enough to utilize.  Live GPS data can be inaccurate by up to a factor of fifty, or nearly
            the size of an American football field!  As a result, setting a vlue for this property can help to reduce precision errors.
            When set, reports of latitude, longitude, speed, and bearing are ignored if precision is not at or below the set value.
            For more on Dilution of Precision and how to determine your precision needs, please refer to our online article here:
            http://www.geoframeworks.com/Articles/WritingApps2_1.aspx.</remarks>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.MaximumReconnectionAttempts">
            <summary>
            Controls the maximum number of reconnection retries allowed.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.MaximumVerticalDilutionOfPrecision">
            <summary>
            Controls the largest amount of precision error allowed before GPS data is ignored.
            </summary>
            <remarks>This property is important for commercial GPS softwaqre development because it helps the interpreter determine
            when GPS data reports are precise enough to utilize.  Live GPS data can be inaccurate by up to a factor of fifty, or nearly
            the size of an American football field!  As a result, setting a vlue for this property can help to reduce precision errors.
            When set, reports of altitude are ignored if precision is not at or below the set value.
            For more on Dilution of Precision and how to determine your precision needs, please refer to our online article here:
            http://www.geoframeworks.com/Articles/WritingApps2_1.aspx.</remarks>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.IsFilterEnabled">
            <summary>
            Controls whether real-time GPS data is made more precise using a filter.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.Filter">
            <summary>
            Controls the technology used to reduce GPS precision error.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.AllowAutomaticReconnection">
            <summary>
            Controls whether the interpreter will try to automatically attempt to reconnect anytime a connection is lost.
            </summary>
            <remarks><para>Interpreters are able to automatically try to recover from connection failures.  When this property is set to <strong>True</strong>,
            the interpreter will detect a sudden loss of connection, then attempt to make a new connection to restore the flow of data.  If multiple GPS
            devices have been detected, any of them may be utilized as a "fail-over device."  Recovery attempts will continue repeatedly until a connection
            is restored, the interpreter is stopped, or the interpreter is disposed.</para>
            <para>For most applications, this property should be enabled to help improve the stability of the application.  In most cases, a sudden loss of
            data is only temporary, caused by a loss of battery power or when a wireless device moves too far out of range.</para></remarks>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.Satellites">
            <summary>
            Returns a list of known GPS satellites.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.IsDisposed">
            <summary>
            Returns whether resources in this object has been shut down.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Interpreter.RecordingStream">
            <summary>
            Returns the stream used to output data received from the GPS device.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.NmeaReader">
            <summary>
            Represents a reader which deserializes raw data into NMEA sentences.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Nmea.NmeaReader.#ctor(System.IO.Stream)">
            <summary>
            Creates a new instance using the specified stream.
            </summary>
            <param name="stream"></param>
        </member>
        <member name="M:GeoFramework.Gps.Nmea.NmeaReader.IsNmea(System.IO.Stream)">
            <summary>
            Returns whether the specified stream contains valid NMEA data.
            </summary>
            <param name="stream">An open <strong>Stream</strong> object which supports read operations.</param>
            <returns>A <strong>Boolean</strong> value, <strong>True</strong> if valid NMEA data has been read from the stream.</returns>
        </member>
        <member name="M:GeoFramework.Gps.Nmea.NmeaReader.ReadSentence">
            <summary>
            Reads the next available sentence, valid or invalid, from the underlying stream.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.Nmea.NmeaReader.ReadValidSentence">
            <summary>
            Reads a well-formed NMEA sentence (with a valid checksum) from the underlying stream.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.Nmea.NmeaReader.ReadTypedSentence">
            <summary>
            Reads a single NMEA sentence then attempts to convert it into an object-oriented form.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.Nmea.NmeaReader.ReadPosition">
            <summary>
            Reads the current latitude and longitude from the next available sentence.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.Nmea.NmeaReader.ReadUtcDateTime">
            <summary>
            Reads the UTC date and time from the next available sentence.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.Nmea.NmeaReader.ReadDateTime">
            <summary>
            Returns the current date and time from the next available sentence.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.Nmea.NmeaReader.ReadSpeed">
            <summary>
            Returns the current rate of travel from the next available sentence.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.Nmea.NmeaReader.ReadFixQuality">
            <summary>
            Reads the current type of fix acquired from the next available sentence.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.Nmea.NmeaReader.ReadAltitude">
            <summary>
            Reads the current distance above sea level from the next available sentence.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.Nmea.NmeaReader.ReadHorizontalDilutionOfPrecision">
            <summary>
            Reads the current precision as it relates to latitude and longitude from the next available sentence.
            </summary>
            <returns></returns>
        </member>
        <member name="E:GeoFramework.Gps.Nmea.NmeaReader.ResolveSentence">
            <summary>
            Occurs when an unknown sentence type is encountered.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.NmeaSentenceResolverEventArgs">
            <summary>
            Represents information about an unknown NMEA sentence which has been encountered.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Nmea.NmeaSentenceResolverEventArgs.Sentence">
            <summary>
            Returns the NMEA sentence which needs to be resolved.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Nmea.NmeaSentenceResolverEventArgs.Result">
            <summary>
            Controls a more-strongly-typed NMEA sentence if resolution is successful.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.IUtcTimeSentence">
            <summary>
            Represents an NMEA sentence which contains time in UTC.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.IFixStatusSentence">
            <summary>
            Represents an NMEA sentence which contains whether a fix is currently acquired.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.FixMethodEventArgs">
            <summary>
            Represents information about the method used to obtain a fix when a fix-related event is raised.
            </summary>
            <remarks>This object is used primarily by the <see cref="!:Receiver.FixMethodChanged">FixMethodChanged</see>
            event of the <see cref="!:Receiver">Receiver</see> class to provide notification when 
            updated fix method information has been received from the GPS device.</remarks>
            <example>This example demonstrates how to use this class when raising an event.
            <code lang="VB">
            ' Declare a new event
            Dim MyFixMethodEvent As EventHandler
            ' Create a FixMethod signifying a 3-D fix (both position and altitude)
            Dim MyFixMethod As FixMethod = FixMethod.Fix3D
            
            Sub Main()
              ' Raise our custom event
              RaiseEvent MyFixMethodEvent(Me, New FixMethodEventArgs(MyFixMethod))
            End Sub
            </code>
            <code lang="C#">
            // Declare a new event
            EventHandler MyFixMethodEvent;
            // Create a FixMethod signifying a 3-D fix (both position and altitude)
            FixMethod MyFixMethod = FixMethod.Fix3D;
            
            void Main()
            {
              // Raise our custom event
              MyFixMethodEvent(this, New FixMethodEventArgs(MyFixMethod));
            }
            </code>
            </example>
            <seealso cref="!:Receiver.FixMethod">FixMethod Property (Receiver Class)</seealso>
            <seealso cref="!:Receiver">Receiver Class</seealso>
        </member>
        <member name="M:GeoFramework.Gps.FixMethodEventArgs.#ctor(GeoFramework.Gps.FixMethod)">
            <summary>
            Creates a new instance with the specified fix method.
            </summary>
            <param name="fixMethod">A value from the <strong>FixMethod</strong> enumeration.</param>
            <remarks></remarks>
        </member>
        <member name="P:GeoFramework.Gps.FixMethodEventArgs.FixMethod">
            <summary>
            Indicates if the GPS device has no fix, a 2-D fix, or a 3-D fix.
            </summary>
            <value>A value from the <strong>FixMethod</strong> enumeration.</value>
            <remarks>A device is considered to have a "2-D" fix if there are three satellites
            involved in the fix.  A 2-D fix means that position information is available, but not 
            altitude.  If at least four satellites are fixed, both position and altitude are known,
            and the fix is considered 3-D.</remarks>
            <seealso cref="!:Receiver.FixMethod">FixMethod Property (Receiver Class)</seealso>
        </member>
        <member name="T:GeoFramework.Gps.FixLikelihoodEventArgs">
            <summary>
            Represents information about the likelihood that a fix will be sustained (or obtained) when a when a fix-related event is raised.
            </summary>
            <remarks>This object is used primarily by the <see cref="!:Receiver.FixLikelihoodChanged">FixLikelihoodChanged</see>
            event of the <see cref="!:Receiver">Receiver</see> class to provide notification when 
            combined satellite radio signal strength has changed.</remarks>
            <example>This example demonstrates how to use this class when raising an event.
            <code lang="VB">
            ' Declare a new event
            Dim MyFixLikelihoodEvent As FixLikelihoodEventHandler
            ' Create a FixLikelihood signifying a 3-D fix (both position and altitude)
            Dim MyFixLikelihood As FixLikelihood = FixLikelihood.Fix3D
            
            Sub Main()
              ' Raise our custom event
              RaiseEvent MyFixLikelihoodEvent(Me, New FixLikelihoodEventArgs(MyFixLikelihood))
            End Sub
            </code>
            <code lang="C#">
            // Declare a new event
            FixLikelihoodEventHandler MyFixLikelihoodEvent;
            // Create a FixLikelihood signifying a 3-D fix (both position and altitude)
            FixLikelihood MyFixLikelihood = FixLikelihood.Fix3D;
            
            void Main()
            {
              // Raise our custom event
              MyFixLikelihoodEvent(this, New FixLikelihoodEventArgs(MyFixLikelihood));
            }
            </code>
            </example>
            <seealso cref="!:Receiver.FixLikelihood">FixLikelihood Property (Receiver Class)</seealso>
            <seealso cref="!:Receiver">Receiver Class</seealso>
        </member>
        <member name="M:GeoFramework.Gps.FixLikelihoodEventArgs.#ctor(GeoFramework.Gps.FixLikelihood)">
            <summary>
            Creates a new instance with the specified fix Likelihood.
            </summary>
            <param name="fixLikelihood">A value from the <strong>FixLikelihood</strong> enumeration.</param>
            <remarks></remarks>
        </member>
        <member name="P:GeoFramework.Gps.FixLikelihoodEventArgs.FixLikelihood">
            <summary>
            Indicates if the GPS device has no fix, a 2-D fix, or a 3-D fix.
            </summary>
            <value>A value from the <strong>FixLikelihood</strong> enumeration.</value>
            <remarks>A device is considered to have a "2-D" fix if there are three satellites
            involved in the fix.  A 2-D fix means that position information is available, but not 
            altitude.  If at least four satellites are fixed, both position and altitude are known,
            and the fix is considered 3-D.</remarks>
            <seealso cref="!:Receiver.FixLikelihood">FixLikelihood Property (Receiver Class)</seealso>
        </member>
        <member name="T:GeoFramework.Gps.FixModeEventArgs">
            <summary>
            Represents information about whether the fix method is chosen automatically when a fix-related event is raised.
            </summary>
            <remarks>This object is used primarily by the <see cref="!:Receiver.FixModeChanged">FixModeChanged</see>
            event of the <see cref="!:Receiver">Receiver</see> class to provide notification when 
            the receiver switches fix modes from <strong>Automatic</strong> to <strong>Manual</strong> or vice-versa.</remarks>
            <example>This example demonstrates how to use this class when raising an event.
            <code lang="VB">
            ' Declare a new event
            Dim MyFixModeEvent As EventHandler
            ' Create a FixMode signifying that the fix method is being chosen automatically
            Dim MyFixMode As FixMode = FixMode.Automatic 
            
            Sub Main()
              ' Raise our custom event
              RaiseEvent MyFixModeEvent(Me, New FixModeEventArgs(MyFixMode))
            End Sub
            </code>
            <code lang="C#">
            // Declare a new event
            EventHandler MyFixModeEvent;
            // Create a FixMode signifying that the fix method is being chosen automatically
            FixMode MyFixMode = FixMode.Automatic;
            
            void Main()
            {
              // Raise our custom event
              MyFixModeEvent(this, New FixModeEventArgs(MyFixMode));
            }
            </code>
            </example>
            <seealso cref="!:Receiver.FixMethod">FixMethod Property (Receiver Class)</seealso>
            <seealso cref="!:Receiver">Receiver Class</seealso>
        </member>
        <member name="M:GeoFramework.Gps.FixModeEventArgs.#ctor(GeoFramework.Gps.FixMode)">
            <summary>
            Creates a new instance with the specified fix method.
            </summary>
            <param name="fixMode">A value from the <strong>FixMode</strong> enumeration.</param>
            <remarks></remarks>
        </member>
        <member name="P:GeoFramework.Gps.FixModeEventArgs.FixMode">
            <summary>
            Indicates if the GPS device is choosing the <see cref="T:GeoFramework.Gps.FixMethod">fix method</see> automatically.
            </summary>
            <value>A value from the <strong>FixMode</strong> enumeration.</value>
            <remarks>A vast majority of GPS devices calculate the fix mode automatically.  This is because
            the process of determining the fix mode is a simple process: if there are three fixed satellites,
            a 2-D fix is obtained; if there are four or more fixed satellites, a 3-D fix is in progress. Any
            less than three satellites means that no fix is possible.
            </remarks>
            <seealso cref="!:Receiver.FixMode">FixMode Property (Receiver Class)</seealso>
        </member>
        <member name="T:GeoFramework.Gps.FixQualityEventArgs">
            <summary>
            Represents information about the type of fix obtained when fix-related event is raised.
            </summary>
            <remarks>This object is used primarily by the <see cref="!:Receiver.FixQualityChanged">FixQualityChanged</see>
            event of the <see cref="!:Receiver">Receiver</see> class to provide notification when 
            the receiver switches fix modes from <strong>Automatic</strong> to <strong>Manual</strong> or vice-versa.</remarks>
            <example>This example demonstrates how to use this class when raising an event.
            <code lang="VB">
            ' Declare a new event
            Dim MyFixQualityEvent As EventHandler
            ' Create a FixQuality signifying that a differential GPS fix is obtained
            Dim MyFixQuality As FixQuality = FixQuality.DifferentialGpsFix 
            
            Sub Main()
              ' Raise our custom event
              RaiseEvent MyFixQualityEvent(Me, New FixQualityEventArgs(MyFixQuality))
            End Sub
            </code>
            <code lang="C#">
            // Declare a new event
            EventHandler MyFixQualityEvent;
            // Create a FixQuality signifying that a differential GPS fix is obtained
            FixQuality MyFixQuality = FixQuality.DifferentialGpsFix;
            
            void Main()
            {
              // Raise our custom event
              MyFixQualityEvent(this, New FixQualityEventArgs(MyFixQuality));
            }
            </code>
            </example>
            <seealso cref="!:Receiver.FixMethod">FixMethod Property (Receiver Class)</seealso>
            <seealso cref="!:Receiver">Receiver Class</seealso>
        </member>
        <member name="M:GeoFramework.Gps.FixQualityEventArgs.#ctor(GeoFramework.Gps.FixQuality)">
            <summary>
            Creates a new instance with the specified fix quality measurement.
            </summary>
            <param name="fixQuality">A value from the <strong>FixQuality</strong> enumeration.</param>
            <remarks></remarks>
        </member>
        <member name="P:GeoFramework.Gps.FixQualityEventArgs.FixQuality">
            <summary>
            Indicates whether the current fix involves satellites and/or DGPS/WAAS ground stations.
            </summary>
            <value>A value from the <strong>FixQuality</strong> enumeration.</value>
            <remarks></remarks>
        </member>
        <member name="T:GeoFramework.Gps.Controls.Speedometer">
            <summary>
            Represents a user control used to measure speed graphically.
            </summary>
        </member>
        <member name="T:GeoFramework.Drawing.PolarControl">
            <summary>
            Represents a base class for round controls painted using polar
            coordinates.
            </summary>
        </member>
        <member name="M:GeoFramework.Drawing.PolarControl.#ctor">
            <summary>
            Creates a new instance.
            </summary>
        </member>
        <member name="M:GeoFramework.Drawing.PolarControl.#ctor(System.String)">
            <summary>
            Creates a new instance using the specified thread name.
            </summary>
            <param name="threadName">A <strong>String</strong> representing the friendly name of the control.</param>
            <remarks>The thread name is dusplayed in the Visual Studio "Threads" debugging window.  Multithreaded debugging
            can be simplified when threads are clearly and uniquely named.</remarks>
        </member>
        <member name="M:GeoFramework.Drawing.PolarControl.OnRotationChanged(GeoFramework.Angle)">
            <summary>Occurs when the control's rotation has changed.</summary>
        </member>
        <member name="M:GeoFramework.Drawing.PolarControl.OnOriginChanged(GeoFramework.Azimuth)">
            <summary>Occurs when the compass direction associated with 0° has changed.</summary>
        </member>
        <member name="M:GeoFramework.Drawing.PolarControl.OnOrientationChanged(GeoFramework.PolarCoordinateOrientation)">
            <summary>Occurs when the control's orientation has changed.</summary>
        </member>
        <member name="M:GeoFramework.Drawing.PolarControl.Rotate(GeoFramework.Angle)">
            <summary>Rotates the entire control to the specified value.</summary>
        </member>
        <member name="E:GeoFramework.Drawing.PolarControl.RotationChanged">
            <summary>Occurs when the rotation amount has changed.</summary>
        </member>
        <member name="E:GeoFramework.Drawing.PolarControl.OriginChanged">
            <summary>Occurs when the compass direction associated with 0° has changed.</summary>
        </member>
        <member name="E:GeoFramework.Drawing.PolarControl.OrientationChanged">
            <summary>Occurs when the control's coordinate orientation has changed.</summary>
        </member>
        <member name="P:GeoFramework.Drawing.PolarControl.Rotation">
            <summary>Controls the amount of rotation applied to the entire control.</summary>
        </member>
        <member name="P:GeoFramework.Drawing.PolarControl.Origin">
            <summary>
            Returns the compass direction which matches zero degrees.
            </summary>
        </member>
        <member name="P:GeoFramework.Drawing.PolarControl.MaximumR">
            <summary>Returns the radius corresponding to the edge of the control.</summary>
        </member>
        <member name="P:GeoFramework.Drawing.PolarControl.CenterR">
            <summary>Returns the radius corresponding to the center of the control.</summary>
        </member>
        <member name="P:GeoFramework.Drawing.PolarControl.Orientation">
            <summary>
            Returns whether positive values are applied in a clockwise or counter-clockwise direction.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.IAltitudeAboveEllipsoidSentence">
            <summary>
            Represents an NMEA sentence which contains 
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Filters.KalmanSystemState">
            <summary>
            Represents the state of a KalmanFilter
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Filters.KalmanSystemState.ObservedLocation">
            <summary>
            The position reported by the GPS device
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Filters.KalmanSystemState.CorrectedLocation">
            <summary>
            The corrected position 
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Filters.KalmanSystemState.Initialize(GeoFramework.Position3D)">
            <summary>
            Initializes the state to the supplied observation.
            </summary>
            <param name="z"></param>
        </member>
        <member name="P:GeoFramework.Gps.Filters.KalmanSystemState.IsInitialized">
            <summary>
            Determines if the Kalman state has an initial observation
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Filters.KalmanSystemState.IntervalCount">
            <summary>
            Returns the number of intervals that have been applied to the Kalman state
            </summary>
            <remarks>
            The number of intervals is the number of observations accumulated in the state
            interval. The greater the number of observations, the more precise the filter 
            becomes.
            </remarks>
        </member>
        <member name="T:GeoFramework.Gps.Filters.KalmanFilter">
            <summary>
            A class that employs a Kalman Filter algorithm to reduce error in GPS  
            precision. 
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Filters.KalmanFilter.Initialize(GeoFramework.Position)">
            <summary>
            Initializes the Kalman Filter using an initial observation (position)
            </summary>
            <param name="gpsPosition"> The position at which tfilter is to begin opperating. </param>
            <remarks> The results of a Kalman filter are cumulative. Each 
            position processed changes the state of the filter, thus making
            the results more accurate with each subsequent position. </remarks>
        </member>
        <member name="M:GeoFramework.Gps.Filters.KalmanFilter.Initialize(GeoFramework.Position3D)">
            <summary>
            Initializes the Kalman Filter using an initial observation (position)
            </summary>
            <param name="gpsPosition"> The position at which tfilter is to begin opperating. </param>
            <remarks> The results of a Kalman filter are cumulative. Each 
            position processed changes the state of the filter, thus making
            the results more accurate with each subsequent position. </remarks>
        </member>
        <member name="P:GeoFramework.Gps.Filters.KalmanFilter.Delay">
            <summary>
            Represents the latency between the current obervation and the filter state
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Filters.KalmanFilter.IsInitialized">
            <summary>
            Returns a value indicationg whether or not the filter has been initialized.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Filters.KalmanFilter.CurrentMeanDilutionOfPrecision">
            <summary>
            Returns the DilutionOfPrecision used in the most recent 
            Kalman filter calculation.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Filters.KalmanFilter.CurrentDeviceError">
            <summary>
            Returns the device error margin used in the most recent
            Kalman filter calculation.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Filters.KalmanFilter.CurrentStateSampleCount">
            <summary>
            Retrns the of position samples that have been evaluated by 
            the current Kalman state.
            </summary>
            <remarks> The results of a Kalman filter are cumulative. Each 
            position processed changes the state of the filter, thus making
            the results more accurate with each subsequent position. </remarks>
        </member>
        <member name="P:GeoFramework.Gps.Filters.KalmanFilter.ErrorState">
            <summary>
            Returns the accumulated average error accounted for the Kalman system.
            </summary>
            <remarks> The results of a Kalman filter are cumulative. Each 
            position processed changes the state of the filter, thus making
            the results more accurate with each subsequent position. </remarks>
        </member>
        <member name="P:GeoFramework.Gps.Filters.KalmanFilter.CurrentErrorEstimate">
            <summary>
            Returns the current precision estimate for the Kalman state
            </summary>
            <remarks> The results of a Kalman filter are cumulative. Each 
            position processed changes the state of the filter, thus making
            the results more accurate with each subsequent position. </remarks>
        </member>
        <member name="T:GeoFramework.Gps.Controls.RotationOrientation">
            <summary>
            Controls whether controls are rotated to show the current bearing straight up.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.Controls.RotationOrientation.NorthUp">
            <summary>
            The control will be rotated so that North always points to the top of the screen.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.Controls.RotationOrientation.TrackUp">
            <summary>
            The control will be rotated so the the current bearing points to the top of the screen.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Controls.SatelliteViewer">
            <summary>
            Represents a user control used to display the location and signal strength of GPS satellites.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Controls.SatelliteViewer.#ctor">
            <summary>
            Creates a new instance.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Controls.Altimeter">
            <summary>Represents a user control used to display altitude.</summary>
            <remarks>
            Altimeters are used to visually represent some form of altitude, typically the
            user's current altitude above sea level. Altitude is measured using three needles which
            represent (from longest to shortest) hundreds, thousands and tens-of-thousands. The
            display of the Altimeter is controlled via the <strong>Value</strong> property.
            </remarks>
        </member>
        <member name="M:GeoFramework.Gps.Controls.Altimeter.#ctor">
            <summary>Creates a new instance.</summary>
        </member>
        <member name="E:GeoFramework.Gps.Controls.Altimeter.ValueChanged">
            <summary>
            Occurs when the Value property has changed.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Controls.Altimeter.IsUsingRealTimeData">
            <summary>
            Indicates if the control should automatically display the current
            altitude.
            </summary>
            <value>
            A <strong>Boolean</strong>, <strong>True</strong> if the control automatically
            displays the current altitude.
            </value>
            <remarks>
            When this property is enabled, the control will examine the
            <strong>CurrentAltitude</strong> property of the
            <strong>GeoFramework.Gps.Devices</strong> class and update itself when the property
            changes. When disabled, the <strong>Value</strong> property must be set manually to
            change the control.
            </remarks>
        </member>
        <member name="P:GeoFramework.Gps.Controls.Altimeter.ValueFont">
            <summary>Controls the font used for displaying altitude text.</summary>
            <remarks>
            This property controls the font used to display altitude text on the control. To
            control the font of numbers drawn around the edge of the control, see the
            <strong>AltitudeLabelFont</strong> property.
            </remarks>
            <seealso cref="P:GeoFramework.Gps.Controls.Altimeter.AltitudeLabelFont">AltitudeLabelFont Property</seealso>
        </member>
        <member name="P:GeoFramework.Gps.Controls.Altimeter.ValueColor">
            <summary>Controls the color of altitude text.</summary>
            <remarks>
            This property controls the color of the altitude text on the control. To change
            the color of numbers drawn around the edge of the control, see the
            <strong>AltitudeLabelColor</strong> property.
            </remarks>
            <seealso cref="P:GeoFramework.Gps.Controls.Altimeter.AltitudeLabelColor">AltitudeLabelColor Property</seealso>
        </member>
        <member name="P:GeoFramework.Gps.Controls.Altimeter.ValueFormat">
            <summary>Controls the format of altitude values.</summary>
            <value>
            A <strong>String</strong> which is compatible with the <strong>ToString</strong>
            method of the <strong>Distance</strong> class.
            </value>
            <remarks>
            This property controls how text is output on the control. By default, the format
            is "<strong>v uu</strong>" where <strong>v</strong> represents the numeric portion of
            the altitude, and <strong>uu</strong> represents units.
            </remarks>
        </member>
        <member name="P:GeoFramework.Gps.Controls.Altimeter.Value">
            <summary>Controls the altitude to display on the control.</summary>
            <value>A <strong>Distance</strong> structure measuring the altitude to display.</value>
            <remarks>
            Changing this property causes the needles on the control to move so that they
            represent the value.
            </remarks>
        </member>
        <member name="P:GeoFramework.Gps.Controls.Altimeter.AltitudeLabelColor">
            <summary>Controls the color of numbers around the edge of the control.</summary>
            <remarks>
            This property controls the color of numbers around the edge of the control. To
            control the color of altitude text, see the <strong>ValueColor</strong>
            property.
            </remarks>
            <seealso cref="P:GeoFramework.Gps.Controls.Altimeter.ValueColor">ValueColor Property</seealso>
        </member>
        <member name="P:GeoFramework.Gps.Controls.Altimeter.AltitudeLabelFont">
            <summary>Controls the font of numbers drawn around the edge of the control.</summary>
            <remarks>
            This property controls the font used to draw numbers around the edge of the
            control. To control the font used to draw altitude text, see the
            <strong>ValueFont</strong> property.
            </remarks>
            <seealso cref="P:GeoFramework.Gps.Controls.Altimeter.ValueFont">ValueFont Property</seealso>
        </member>
        <member name="P:GeoFramework.Gps.Controls.Altimeter.MinorTickColor">
            <summary>
            Controls the color of smaller tick marks drawn around the edge of the
            control.
            </summary>
            <remarks>
            Minor tick marks are drawn between major tick marks around the control. These
            tick marks can be made invisible by changing the color to
            <strong>Transparent</strong>.
            </remarks>
        </member>
        <member name="P:GeoFramework.Gps.Controls.Altimeter.MajorTickColor">
            <remarks>
            There are ten major tick marks in an altimeter, drawn next to numbers on the
            control. These tick marks can be made invisible by changing the color to
            <strong>Transparent</strong>.
            </remarks>
        </member>
        <member name="P:GeoFramework.Gps.Controls.Altimeter.TensOfThousandsNeedleFillColor">
            <summary>Controls the interior color of the tens-of-thousands needle.</summary>
            <remarks>
            The tens-of-thousands needle is the smallest needle of the control. The interior
            can be made invisible by setting this property to <strong>Transparent</strong>.
            </remarks>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.GpgsvSentence">
            <summary>
            Represents a $GPGSV sentence describing the location and signal strength of GPS
            satellites.
            </summary>
            <remarks>This sentence is used to determine the location of GPS satellites relative
            to the current location, as well as to indicate the strength of a satellite's radio
            signal.  </remarks>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.ISatelliteCollectionSentence">
            <summary>
            Represents an NMEA sentence which contains GPS satellite information.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Nmea.GpgsvSentence.FromSatellites(System.Collections.Generic.IList{GeoFramework.Gps.Satellite})">
            <summary>
            Returns a collection of $GPGSV sentences fully describing the specified
            collection of satellites.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Nmea.GpgsvSentence.Satellites">
            <summary>
            Returns a collection of <strong>Satellite</strong> objects describing current
            satellite information.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Nmea.GpgsvSentence.TotalMessageCount">
            <summary>Returns the total number of $GPGSV sentence in a sequence.</summary>
        </member>
        <member name="P:GeoFramework.Gps.Nmea.GpgsvSentence.CurrentMessageNumber">
            <summary>
            Returns the current message index when the sentence is one of several
            messages.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Nmea.GpgsvSentence.SatellitesInView">
            <summary>
            Returns the number of satellites whose signals are detected by the GPS
            device.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.IO.BluetoothEndPoint">
            <summary>
            Represents a Bluetooth service on a device.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.BluetoothEndPoint.#ctor(GeoFramework.Gps.IO.BluetoothAddress)">
            <summary>
            Creates a new instance using the specified address.
            </summary>
            <param name="address"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.BluetoothEndPoint.#ctor(GeoFramework.Gps.IO.BluetoothAddress,System.Guid)">
            <summary>
            Creates a new instance using the specified address and service GUID.
            </summary>
            <param name="address"></param>
            <param name="service"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.BluetoothEndPoint.#ctor(GeoFramework.Gps.IO.BluetoothAddress,System.Guid,System.Int32)">
            <summary>
            Creates a new instance using the specified address, service GUID, and remote port number.
            </summary>
            <param name="address"></param>
            <param name="service"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.BluetoothEndPoint.#ctor(System.Net.SocketAddress)">
            <summary>
            Creates a new instance from the specified socket address.
            </summary>
            <param name="socketAddress"></param>
        </member>
        <member name="P:GeoFramework.Gps.IO.BluetoothEndPoint.Service">
            <summary>
            Returns a GUID indentifying the service.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.BluetoothEndPoint.Port">
            <summary>
            Returns the port used for opening connections.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.BluetoothEndPoint.Name">
            <summary>
            Returns a friendly name for the endpoint.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.BluetoothEndPoint.Address">
            <summary>
            Returns the unique address of the device, used for connections.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.BluetoothEndPoint.SuccessfulDetectionCount">
            <summary>
            Controls the number of times this endpoint has been identified as a GPS service.
            </summary>
            
        </member>
        <member name="P:GeoFramework.Gps.IO.BluetoothEndPoint.FailedDetectionCount">
            <summary>
            Controls the number of times this endpoint has failed to identify itself as a GPS service.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.IO.BluetoothDevice">
            <summary>
            Represents a service on a Bluetooth(tm) device.
            </summary>
            <remarks>Bluetooth GPS devices often provide access to data using sockets.  In order to establish a connection
            to a Bluetooth GPS device, </remarks>
        </member>
        <member name="T:GeoFramework.Gps.IO.NetworkDevice">
            <summary>
            Represents a GPS device which is accessed via a socket connection.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.NetworkDevice.Open(System.Net.EndPoint)">
            <summary>
            Creates a new connection to the specified endpoint.
            </summary>
            <param name="endPoint"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.NetworkDevice.OnConfigureSocket">
            <summary>
            Occurs immediately before a socket is opened.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.NetworkDevice.AddressFamily">
            <summary>
            Returns the addressing scheme the socket can use. 
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.NetworkDevice.SocketType">
            <summary>
            Returns the type of protocol used by the socket.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.NetworkDevice.ProtocolType">
            <summary>
            Returns the protocol supported by the socket.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.NetworkDevice.EndPoint">
            <summary>
            Returns the network address for the device. 
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.NetworkDevice.Socket">
            <summary>
            Returns the socket associated with this device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.NetworkDevice.DefaultConnectTimeout">
            <summary>
            Controls the amount of time allowed for a connection to be successfully opened.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.IO.BluetoothDevice.BaseServiceGuid">
            <summary>
            Returns a GUID which serves as the base of all Bluetooth services.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.IO.BluetoothDevice.RFCommServiceGuid">
            <summary>
            Returns a GUID which represents the RFComm service.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.IO.BluetoothDevice.L2CapServiceGuid">
            <summary>
            Returns a GUID which represents the L2Cap service.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.BluetoothDevice.#ctor(GeoFramework.Gps.IO.BluetoothAddress)">
            <summary>
            Creates a new instance using the specified address.
            </summary>
            <param name="address"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.BluetoothDevice.#ctor(GeoFramework.Gps.IO.BluetoothAddress,System.String)">
            <summary>
            Creates a new instance using the specified address and name.
            </summary>
            <param name="address"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.BluetoothDevice.#ctor(GeoFramework.Gps.IO.BluetoothEndPoint,System.String)">
            <summary>
            Creates a new instance using the specified endpoint and friendly name.
            </summary>
            <param name="address"></param>
            <param name="name"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.BluetoothDevice.DiscoverDevices">
            <summary>
            Searches the room for Bluetooth devices.
            </summary>
            <remarks>This method will perform discovery of nearby Bluetooth devices.  Discovery will take place on a separate thread,
            and the <strong>DeviceDiscovered</strong> event will be raised for each device service discovered.  If a device publishes multiple
            services, multiple events will be raised for each service.</remarks>
        </member>
        <member name="M:GeoFramework.Gps.IO.BluetoothDevice.DiscoverDevices(System.Boolean)">
            <summary>
            Searches the room for Bluetooth devices.
            </summary>
            <remarks><para>This method will perform discovery of nearby Bluetooth devices.  Discovery will take place on a separate thread,
            and the <strong>DeviceDiscovered</strong> event will be raised for each device service discovered.  If a device publishes multiple
            services, multiple events will be raised for each service.</para>
            <para>If the <strong>IsCacheFlushed</strong> parameter is <strong>True</strong>, any cached information will be cleared, and a
            wireless scan of devices will be performed.  This kind of scan is preferable since it can detect which devices are actually responding
            right now, even though the query will take several seconds to occur.  A value of <strong>False</strong> is typically used if a
            device scan was recently performed and responsiveness is necessary.</para>
            </remarks>
            <param name="isCacheFlushed">A <strong>Boolean</strong> indicating whether the cache of Bluetooth information should be cleared.</param>
        </member>
        <member name="E:GeoFramework.Gps.IO.BluetoothDevice.DeviceDiscovered">
            <summary>
            Occurs when a new Bluetooth device has been detected.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.BluetoothDevice.Address">
            <summary>
            Returns the address of the device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.BluetoothDevice.Class">
            <summary>
            Returns the primary purpose of the device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.BluetoothDevice.MinorClass">
            <summary>
            Returns a sub-category describing the purpose of the device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.BluetoothDevice.ServiceClass">
            <summary>
            Returns the major type of device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.BluetoothDevice.VirtualSerialPort">
            <summary>
            Returns a serial device which has been linked to this device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.BluetoothDevice.Name">
            <summary>
            Returns the name of the Bluetooth device.
            </summary>
            <remarks>If the device has been identified, the actual name of the device will be returned.  Otherwise, the
            device's address will be returned.</remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.BluetoothDevice.MaximumAllowedFailures">
            <summary>
            Controls the maximum allowed detection failures before a device is excluded from detection.
            </summary>
            <remarks>Some devices involved with device detection are not GPS devices.  For example, a Bluetooth search
            could return wireless headphones, or the neighbor's computer.  This property controls how many times a device will be
            tested before it is no longer included for searches.  If a device's failure count goes beyond this number, attempts
            will no longer be made to connect to the device.</remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.BluetoothDevice.Cache">
            <summary>
            Returns a list of known Bluetooth devices.
            </summary>
            <remarks><para>To maximize performance, GPS.NET will record information about each device it encounters for the purposes of organizing
            and speeding up the GPS device detection process.  This property returns a list of all known Bluetooth devices.</para>
            <para>Since this list is managed automatically, it should not be modified.</para>
            </remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.BluetoothDevice.DiscoveryTimeout">
            <summary>
            Controls the amount of time spent searching for Bluetooth devices.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.IO.DeviceClass">
            <summary>
            Indicates the classification of a Bluetooth device.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.IO.ServiceClass">
            <summary>
            Indicates the kind of service provided by a Bluetooth device.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Controls.Compass">
            <summary>
            Represents a user control used to display the current direction of travel.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.NmeaInterpreter">
            <summary>
            Represents an interpreter for GPS data from the National Marine Electronics Association (NMEA).
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.Nmea.NmeaInterpreter.DataChangeSyncRoot">
            <summary>
            Represents a synchronization object used to prevent changes to GPS data when reading multiple GPS values.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Nmea.NmeaInterpreter.SentenceReceived">
            <summary>
            Occurs when a new line of NMEA data has arrived.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.Nmea.NmeaInterpreter.SentenceRecorded">
            <summary>
            Occurs when a packet of data has been recorded to the recording stream.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.IFixMethodSentence">
            <summary>
            Represents an NMEA sentence which contains the method used to acquire a fix.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.IFixedSatellitesSentence">
            <summary>
            Represents an NMEA sentence which contains a list of fixed GPS satellites.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.IHorizontalDilutionOfPrecisionSentence">
            <summary>
            Represents an NMEA sentence which contains 
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.IVerticalDilutionOfPrecisionSentence">
            <summary>
            Represents an NMEA sentence which contains 
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.IAltitudeSentence">
            <summary>
            Represents an NMEA sentence which contains 
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.IGeoidalSeparationSentence">
            <summary>
            Represents an NMEA sentence which contains 
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.IDifferentialGpsSentence">
            <summary>
            Represents an NMEA sentence which contains differential GPS information.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.IFixedSatelliteCountSentence">
            <summary>
            Represents an NMEA sentence which returns the number of GPS satellites involved in the current fix.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.DilutionOfPrecision">
            <summary>
            Represents a confidence level in the precision of GPS data.
            </summary>
            <remarks><para>Dilution of Precision (or "DOP" for short) is a very important concept for GPS software
            developers.  When GPS devices calculate the current location on Earth's surface, inaccuracies
            can cause the calculated position to be incorrect by as much as an American football field!  To
            help minimize these effects, the GPS device also reports DOP values.  A low DOP value (such as 2)
            indicates excellent precision, whereas a high value (such as 50) indicates that precision is very 
            poor.</para>  
            <para>As a rule of thumb, a DOP value can be multiplied by the average precision of a GPS device
            to get a measurable amount of error.  Most consumer GPS devices are capable of about four to six meters
            of precision at their best, or as low as one to three meters if DGPS services such as WAAS or EGNOS are
            being utilized.  Or, an average of five meters without DGPS, and an average of two meters with DGPS.
            So, if the current Dilution of Precision is four, and WAAS is in effect, the current precision is
            "2 meters * four = 8 meters" of precision.</para>
            <para>GPS.NET includes features to help you monitor and control the precision of your GPS devices.  Properties
            such as <strong>MaximumHorizontalDilutionOfPrecision</strong> will cause a GPS.NET interpreter to throw out
            any real-time data until the DOP is at or below a specific number.  To help you determine this maximum number for
            your application, an article is available to help you.  You can find it online at the GeoFrameworks web site here:
            http://www.geoframeworks.com/Articles/WritingApps2_1.aspx. </para>
            </remarks>
        </member>
        <member name="F:GeoFramework.Gps.DilutionOfPrecision.TypicalPrecision">
            <summary>
            Represents the typical precision of a consumer-grade GPS device: six meters.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.DilutionOfPrecision.TypicalPrecisionWithDgps">
            <summary>
            Represents the typical precision of a consumer-grade GPS device with WAAS, MSAS or EGNOS: two meters.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.DilutionOfPrecision.Maximum">
            <summary>Represents the worst possible DOP value of fifty.</summary>
        </member>
        <member name="F:GeoFramework.Gps.DilutionOfPrecision.Minimum">
            <summary>Represents the best possible DOP value of one.</summary>
        </member>
        <member name="F:GeoFramework.Gps.DilutionOfPrecision.Excellent">
            <summary>Represents a DOP reading signifying nearly-ideal precision.</summary>
        </member>
        <member name="F:GeoFramework.Gps.DilutionOfPrecision.Fair">
            <summary>Represents a DOP reading signifying inaccurate positional measurements.</summary>
        </member>
        <member name="F:GeoFramework.Gps.DilutionOfPrecision.Poor">
            <summary>
            Represents a FOP reading signifying grossly inaccurate positional
            measurements.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.DilutionOfPrecision.Ideal">
            <summary>
            Represents a value of 1, where the GPS device is making the most accurate
            measurements possible.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.DilutionOfPrecision.Moderate">
            <summary>Represents a DOP reading signifying inaccurate positional measurements.</summary>
        </member>
        <member name="F:GeoFramework.Gps.DilutionOfPrecision.Good">
            <summary>
            Represents a DOP reading signifying fairly accurate positional
            measurements.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.DilutionOfPrecision.Invalid">
            <summary>Represents an invalid or unspecified DOP value.</summary>
        </member>
        <member name="M:GeoFramework.Gps.DilutionOfPrecision.#ctor(System.Single)">
            <summary>
            Creates a new instance using the specified value.
            </summary>
            <param name="value"></param>
        </member>
        <member name="P:GeoFramework.Gps.DilutionOfPrecision.Value">
            <summary>
            Returns the numeric value of the rating.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.DilutionOfPrecision.IsEmpty">
            <summary>
            Returns whether the value is zero.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.DilutionOfPrecision.IsInvalid">
            <summary>
            Returns whether the value is invalid or unspecified.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.DilutionOfPrecision.EstimatedPrecision">
            <summary>
            Returns the estimated precision as a measurable distance.
            </summary>
            <remarks>
            The precision estimate is a product of this value and the value of the 
            CurrentAverageDevicePrecision static property.
            </remarks>
        </member>
        <member name="P:GeoFramework.Gps.DilutionOfPrecision.Rating">
            <summary>
            Returns a friendly name for the level of precision.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.DilutionOfPrecision.CurrentAverageDevicePrecision">
            <summary>
            Controls the estimated average precision possible by the current GPS device.
            </summary>
            <remarks>Most consumer GPS devces are capable of about six meters of precision without DGPS features
            such as WAAS or EGNOS.  When DGPS features are utilized, a typical cunsumer device is capable of about
            two meters of precision.  If you know of a specific amount for your device, you can set this property to
            assist GPS.NET in calculating the current estimated measurable amount of error in latitude/longitude reports.</remarks>
        </member>
        <member name="T:GeoFramework.Gps.DilutionOfPrecisionRating">
            <summary>
            Indicates an interpretation of the accuracy of a measurement made by the GPS
            device.
            </summary>
            <remarks>
            This enumeration is used by the
            <see cref="P:GeoFramework.Gps.DilutionOfPrecision.Rating">Rating</see> property of the
            <see cref="T:GeoFramework.Gps.DilutionOfPrecision">
            DilutionOfPrecision</see> class. This interpretation is subject to discussion as to
            what precisely constitutes a "good" versus "bad" DOP. Use your own best judgement based
            on the needs of your application. Generally speaking, a DOP of six or less is
            recommended for en-route navigation, and three or less for highly-precise measurements.
            A rating of <strong>Moderate</strong> corresponds with six or better, a rating of
            <strong>Excellent</strong> means three or less, and a rating of <strong>Ideal</strong>
            means the best value of one.
            </remarks>
        </member>
        <member name="F:GeoFramework.Gps.DilutionOfPrecisionRating.Unknown">
            <summary>The rating is unknown or not yet available.</summary>
        </member>
        <member name="F:GeoFramework.Gps.DilutionOfPrecisionRating.Ideal">
            <summary>
            Represents a value of 1, where the GPS device is making the most accurate
            measurements possible.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.DilutionOfPrecisionRating.Excellent">
            <summary>
            The GPS device is making high-quality measurements, good enough for applications
            requiring higher levels of precision. Represents a value of 2 or 3.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.DilutionOfPrecisionRating.Good">
            <summary>
            The GPS device is making measurements accurate enough for en-route navigation.
            Represents a value between 4 and 6.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.DilutionOfPrecisionRating.Moderate">
            <summary>
            The GPS device is making measurements good enough to indicate the approximate
            location, but should be ignored by applications requiring high accuracy. Represents a
            value of 7 or 8.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.DilutionOfPrecisionRating.Fair">
            <summary>
            The GPS device is making measurements with an accuracy which should only be used
            to indicate the approximate location, but is not accurate enough for en-route
            navigation. Represents a value between 9 and 20.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.DilutionOfPrecisionRating.Poor">
            <summary>
            The GPS device is calculating the current location, but the accuracy is extremely
            low and may be off by a factor of fifty. Represents a value between 21 and the maximum
            possible of 50.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.DilutionOfPrecisionEventArgs">
            <summary>Represents information about a DOP measurement when an DOP-related event is raised.</summary>
            <remarks>This class is typically used for events in the <see cref="P:GeoFramework.Gps.DilutionOfPrecisionEventArgs.DilutionOfPrecision">DilutionOfPrecision</see> class to 
            provide notification when hours, minutes, decimal minutes or seconds properties have changed.</remarks>
            <example>This example demonstrates how to use this class when raising an event.
            <code lang="VB">
            ' Declare a new event
            Dim MyDilutionOfPrecisionEvent As EventHandler
            ' Create a DilutionOfPrecision of 30 horizontal
            Dim MyDilutionOfPrecision As New DilutionOfPrecision(DilutionOfPrecisionType.Horizontal, 30.0)
            
            Sub Main()
              ' Raise our custom event
              RaiseEvent MyDilutionOfPrecisionEvent(Me, New DilutionOfPrecisionEventArgs(MyDilutionOfPrecision))
            End Sub
            </code>
            <code lang="C#">
            // Declare a new event
            EventHandler MyDilutionOfPrecisionEvent;
            // Create a DilutionOfPrecision of 30 horizontal
            DilutionOfPrecision MyDilutionOfPrecision = new DilutionOfPrecision(DilutionOfPrecisionType.Horizontal, 30.0);
            
            void Main()
            {
              // Raise our custom event
              MyDilutionOfPrecisionEvent(this, New DilutionOfPrecisionEventArgs(MyDilutionOfPrecision));
            }
            </code>
            </example>
            <seealso cref="P:GeoFramework.Gps.DilutionOfPrecisionEventArgs.DilutionOfPrecision">DilutionOfPrecision Class</seealso>
            <seealso cref="T:System.EventHandler">EventHandler Delegate</seealso>
        </member>
        <member name="M:GeoFramework.Gps.DilutionOfPrecisionEventArgs.#ctor(GeoFramework.Gps.DilutionOfPrecision)">
            <summary>
            Creates a new instance with the specified DOP measurement.
            </summary>
            <param name="DilutionOfPrecision">A DilutionOfPrecision object which is the target of the event.</param>
        </member>
        <member name="P:GeoFramework.Gps.DilutionOfPrecisionEventArgs.DilutionOfPrecision">
            <summary>
            A DilutionOfPrecision object which is the target of the event.
            </summary>
            <value></value>
        </member>
        <member name="T:GeoFramework.Gps.Satellite">
            <summary>Represents information about a GPS satellite in orbit above Earth.</summary>
            <remarks>
            	<para>GPS devices are able to isolate information about GPS satellites in orbit. Each
             satellite's <see cref="P:GeoFramework.Gps.Satellite.PseudorandomNumber">unique identifier</see>,
             <see cref="P:GeoFramework.Gps.Satellite.SignalToNoiseRatio">radio signal strength</see>,
             <see cref="P:GeoFramework.Gps.Satellite.Azimuth">azimuth</see> and
             <see cref="P:GeoFramework.Gps.Satellite.Elevation">elevation</see> are available once its
             radio signal is detected.</para>
            	<para>Properties in this class are updated automatically as new information is
             received from the GPS device.</para>
            	<para><img src="Satellite.jpg"/></para>
            </remarks>
            <seealso cref="!:SatelliteCollection">SatelliteCollection Class</seealso>
        </member>
        <member name="M:GeoFramework.Gps.Satellite.#ctor(System.Int32)">
            <summary>
            Creates a new instance using the specified unique identifier.
            </summary>
            <param name="pseudorandomNumber"></param>
        </member>
        <member name="M:GeoFramework.Gps.Satellite.#ctor(System.Int32,GeoFramework.Azimuth,GeoFramework.Elevation)">
            <summary>
            Creates a new instance using the specified unique identifier, location around the horizon, and elevation up from the horizon.
            </summary>
            <param name="pseudorandomNumber"></param>
            <param name="azimuth"></param>
            <param name="elevation"></param>
        </member>
        <member name="M:GeoFramework.Gps.Satellite.#ctor(System.Int32,GeoFramework.Azimuth,GeoFramework.Elevation,GeoFramework.Gps.SignalToNoiseRatio)">
            <summary>
            Creates a new instance using the specified unique identifier, location around the horizon, and elevation up from the horizon.
            </summary>
            <param name="pseudorandomNumber"></param>
            <param name="azimuth"></param>
            <param name="elevation"></param>
            <param name="signalToNoiseRatio"></param>
        </member>
        <member name="M:GeoFramework.Gps.Satellite.#ctor(System.Int32,GeoFramework.Azimuth,GeoFramework.Elevation,GeoFramework.Gps.SignalToNoiseRatio,System.Boolean)">
            <summary>
            Creates a new instance using the specified unique identifier, location around the horizon, and elevation up from the horizon.
            </summary>
            <param name="pseudorandomNumber"></param>
            <param name="azimuth"></param>
            <param name="elevation"></param>
            <param name="signalToNoiseRatio"></param>
            <param name="isFixed"></param>
        </member>
        <member name="M:GeoFramework.Gps.Satellite.GetFixedSatellites(System.Collections.Generic.List{GeoFramework.Gps.Satellite})">
            <summary>
            Returns the satellites in the specified in the list which are marked as fixed.
            </summary>
            <param name="satellites"></param>
            <returns></returns>
        </member>
        <member name="P:GeoFramework.Gps.Satellite.PseudorandomNumber">
            <summary>Returns the unique identifier of the satellite.</summary>
        </member>
        <member name="P:GeoFramework.Gps.Satellite.Azimuth">
            <summary>
            Returns the horizontal direction towards the satellite from the current location.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Satellite.Elevation">
            <summary>
            Returns the vertical direction towards the satellite from the current
            location.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Satellite.SignalToNoiseRatio">
            <summary>
            Returns the strength of the satellite's radio signal as it is being
            received.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Satellite.LastSignalReceived">
            <summary>Returns the date and time that the satellite's signal was detected.</summary>
        </member>
        <member name="P:GeoFramework.Gps.Satellite.IsFixed">
            <summary>
            Returns whether the satellite's signal is being used to calculate the current
            location.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Satellite.IsTracked">
            <summary>Returns whether the satellite's signal is currently being detected.</summary>
        </member>
        <member name="P:GeoFramework.Gps.Satellite.SignalAge">
            <summary>Returns the amount of time elapsed since the signal was last received.</summary>
        </member>
        <member name="P:GeoFramework.Gps.Satellite.IsActive">
            <summary>Returns whether the satellite's signal has recently been received.</summary>
        </member>
        <member name="P:GeoFramework.Gps.Satellite.IsDifferentialGpsSatellite">
            <summary>
            Indicates whether the satellite is providing additional corrective
            signals to increase precision.
            </summary>
            <remarks>This property will return a value of <strong>True</strong>
            if the GPS satellite has been identified as a WAAS, EGNOS or MSAS satellite.
            These satellites are geostationary (unlike typical NAVSTAR GPS satellites)
            and re-broadcast correction signals from ground stations.  When this property
            is true, the GPS device has improved precision.</remarks>
        </member>
        <member name="P:GeoFramework.Gps.Satellite.Class">
            <summary>Returns the government project responsible for launching the satellite.</summary>
        </member>
        <member name="P:GeoFramework.Gps.Satellite.AtomicClockType">
            <summary>Returns the atomic clock currently in service.</summary>
        </member>
        <member name="P:GeoFramework.Gps.Satellite.Block">
            <summary>Returns the launch block of the satellite.</summary>
        </member>
        <member name="P:GeoFramework.Gps.Satellite.DateLaunched">
            <summary>Returns the date the satellite was placed into orbit.</summary>
        </member>
        <member name="P:GeoFramework.Gps.Satellite.DateCommissioned">
            <summary>Returns the date the satellite was placed into service.</summary>
        </member>
        <member name="P:GeoFramework.Gps.Satellite.DateDecommissioned">
            <summary>Returns the date the satellite was removed from service.</summary>
        </member>
        <member name="P:GeoFramework.Gps.Satellite.Name">
            <summary>Returns the friendly name of the satellite.</summary>
        </member>
        <member name="T:GeoFramework.Gps.SatelliteEventArgs">
            <summary>
            Represents information about a satellite when a satellite-related event is raised.
            </summary>
            <remarks>This object is used primarily by the <see cref="P:GeoFramework.Gps.SatelliteEventArgs.Satellite">Satellite</see>
            class to provide notification when information such as <see cref="!:Satellite.Azimuth">azimuth</see>,
            <see cref="!:Satellite.Elevation">elevation</see>, or <see cref="!:Satellite.SignalToNoiseRatio">radio signal strength</see> 
            has changed.</remarks>
            <example>This example demonstrates how to use this class when raising an event.
            <code lang="VB">
            ' Start a new receiver
            Dim MyReceiver As New Receiver()
            ' Declare a new event
            Dim MySatelliteEvent As EventHandler
            ' Get a handle on the first satellite in the receiver's collection
            Dim MySatellite As Satellite = MyReceiver.Satellites(0)
            
            Sub Main()
              ' Raise our custom event
              RaiseEvent MySatelliteEvent(Me, New SatelliteEventArgs(MySatellite))
            End Sub
            </code>
            <code lang="C#">
            // Start a new receiver
            Receiver MyReceiver = new Receiver();
            // Declare a new event
            EventHandler MySatelliteEvent;
            // Create an Satellite of 90°
            Satellite MySatellite = new Satellite(90);
            
            void Main()
            {
              // Raise our custom event
              MySatelliteEvent(this, New SatelliteEventArgs(MySatellite));
            }
            </code>
            </example>
            <seealso cref="P:GeoFramework.Gps.SatelliteEventArgs.Satellite">SatelliteCollection Class</seealso>
            <seealso cref="!:Satellite.Azimuth">Azimuth Property (Satellite Class)</seealso>
            <seealso cref="!:Satellite.Elevation">Elevation Property (Satellite Class)</seealso>
            <seealso cref="!:Satellite.SignalToNoiseRatio">SignalToNoiseRatio Property (Satellite Class)</seealso>
        </member>
        <member name="M:GeoFramework.Gps.SatelliteEventArgs.#ctor(GeoFramework.Gps.Satellite)">
            <summary>
            Creates a new instance.
            </summary>
            <param name="Satellite"></param>
        </member>
        <member name="P:GeoFramework.Gps.SatelliteEventArgs.Satellite">
            <summary>
            Indicates which satellite is the target of the event.
            </summary>
            <value>A <strong>Satellite</strong> object containing modified information.</value>
        </member>
        <member name="M:GeoFramework.Gps.SatelliteListEventArgs.#ctor(System.Collections.Generic.IList{GeoFramework.Gps.Satellite})">
            <summary>
            Creates a new instance.
            </summary>
            <param name="satellite"></param>
        </member>
        <member name="P:GeoFramework.Gps.SatelliteListEventArgs.Satellites">
            <summary>
            Indicates which satellites are the target of the event.
            </summary>
            <value>A list of <strong>Satellite</strong> objects.</value>
        </member>
        <member name="T:GeoFramework.Gps.SatelliteClass">
            <summary>Indicates the government project responsible for a GPS satellite.</summary>
        </member>
        <member name="F:GeoFramework.Gps.SatelliteClass.Unknown">
            <summary>The satellite could not be identified.</summary>
        </member>
        <member name="F:GeoFramework.Gps.SatelliteClass.Navstar">
            <summary>The satellite is part of the NAVSTAR project.</summary>
        </member>
        <member name="F:GeoFramework.Gps.SatelliteClass.Waas">
            <summary>The satellite is part of the Wide Area Augmentation System (WAAS).</summary>
        </member>
        <member name="F:GeoFramework.Gps.SatelliteClass.Egnos">
            <summary>
            The satellite is part of the European Geostationary Navigation Overlay Service
            (EGNOS).
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.SatelliteClass.Msas">
            <summary>
            The satellite is pard of Japan's MTSAT Satellite Augmentation System
            (MSAS).
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.SatelliteBlock">
            <summary>Indicates the launch block of a group of NAVSTAR GPS satellites.</summary>
        </member>
        <member name="F:GeoFramework.Gps.SatelliteBlock.Unknown">
            <summary>The block is unknown.</summary>
        </member>
        <member name="F:GeoFramework.Gps.SatelliteBlock.I">
            <summary>Represents Block I.</summary>
        </member>
        <member name="F:GeoFramework.Gps.SatelliteBlock.II">
            <summary>Represents Block II.</summary>
        </member>
        <member name="F:GeoFramework.Gps.SatelliteBlock.IIA">
            <summary>Represents Block IIA</summary>
        </member>
        <member name="F:GeoFramework.Gps.SatelliteBlock.IIR">
            <summary>Represents Block IIR.</summary>
        </member>
        <member name="T:GeoFramework.Gps.SatelliteAtomicClockType">
            <summary>Indicates the main atomic clock in service aboard a GPS satellite.</summary>
        </member>
        <member name="F:GeoFramework.Gps.SatelliteAtomicClockType.Unknown">
            <summary>The clock type is unknown.</summary>
        </member>
        <member name="F:GeoFramework.Gps.SatelliteAtomicClockType.Cesium">
            <summary>The satellite's Cesium clock is currently in service.</summary>
        </member>
        <member name="F:GeoFramework.Gps.SatelliteAtomicClockType.Rubidium">
            <summary>The satellite's Rubidium clock is currently in service.</summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.GprmcSentence">
            <summary>
            Represents the "recommended minimum" GPS sentence.
            </summary>
        </member>
        <member name="T:GeoFramework.SquareMatrix3D">
            <summary>
            Represents a three-dimensional double-precision matrix.
            </summary>
        </member>
        <member name="M:GeoFramework.SquareMatrix3D.#ctor">
            <summary>
            Creates a matrix as an identity matrix
            </summary>
        </member>
        <member name="M:GeoFramework.SquareMatrix3D.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Creates a matrix with the indicated elements
            </summary>
            <param name="m11"> Row one, column one </param>
            <param name="m12"> Row one, column two </param>
            <param name="m13"> Row one, column three</param>
            <param name="m21"> Row two, column one </param>
            <param name="m22"> Row two, column two </param>
            <param name="m33"> Row two, column three</param>
            <param name="m31"> Row three, column one </param>
            <param name="m32"> Row three, column two </param>
            <param name="m33"> Row three, column three </param>
        </member>
        <member name="M:GeoFramework.SquareMatrix3D.Clone">
            <summary>
            Ctreates an exact copy of this matrix.
            </summary>
            <returns> A cloned matrix. </returns>
        </member>
        <member name="M:GeoFramework.SquareMatrix3D.Multiply(GeoFramework.SquareMatrix3D)">
            <summary>
            Multiplies this matrix with the supplied matrix, using a prepended matrix order
            </summary>
            <param name="matrix"> The matrix to multiply with this matrix. </param>
        </member>
        <member name="M:GeoFramework.SquareMatrix3D.Multiply(GeoFramework.SquareMatrix3D,GeoFramework.MatrixOrder)">
            <summary>
            Multiplies this matrix with the supplied matrix.
            </summary>
            <param name="matrix"> The matrix to multiply with this matrix. </param>
            <param name="matrixOrder"> The order in which to carry out the operation. </param>
        </member>
        <member name="M:GeoFramework.SquareMatrix3D.TransformVectors(GeoFramework.CartesianPoint[])">
            <summary>
            Transform the array of vectors
            </summary>
            <param name="points"></param>
        </member>
        <member name="M:GeoFramework.SquareMatrix3D.Invert">
            <summary>
            Inverts this matrix if it is invertable. 
            </summary>
            <remarks>
            If the matrix is not invertable, this method throws an exception.
            </remarks>
        </member>
        <member name="M:GeoFramework.SquareMatrix3D.Determinant">
            <summary>
            Calculates the determinat of this matrix.
            </summary>
            <returns> The signed area of the parallelagram described by this matrix. </returns>
            <remarks>
            The determinant is a scalar value typically used to invert a matrix. As a signed area, it can also be used to
            identify "flipped" orientations, like mirroring. A negative determinant indicates that a matrix is "flipped".
            </remarks>
        </member>
        <member name="M:GeoFramework.SquareMatrix3D.Reset">
            <summary>
            Resests the matrix to the identity matrix.
            </summary>
        </member>
        <member name="M:GeoFramework.SquareMatrix3D.Transpose(GeoFramework.SquareMatrix3D)">
            <summary>
            Creates the transpose matrix of a matrix 
            </summary>
        </member>
        <member name="P:GeoFramework.SquareMatrix3D.IsIdentity">
            <summary>
            Indicates whether or not this is an identity matrix
            </summary>
        </member>
        <member name="P:GeoFramework.SquareMatrix3D.IsInvertable">
            <summary>
            Indicates whether or not this matrix is invertable.
            </summary>
        </member>
        <member name="P:GeoFramework.SquareMatrix3D.Identity">
            <summary>
            Returns an identity matrix.
            </summary>
        </member>
        <member name="T:GeoFramework.Drawing.CancelablePaintEventArgs">
            <summary>Represents information about a cancelable paint iteration.</summary>
            <remarks>
            This class is used primarily by the <strong>OnPaintOffScreen</strong> method of
            the <strong>DoubleBufferedControl</strong> class when paint operations need to be
            performed. This class behaves the same as <strong>PaintEventArgs</strong>, but includes
            an extra <strong>IsCanceled</strong> property to indicate when a rendering iteration
            should be aborted.
            </remarks>
        </member>
        <member name="M:GeoFramework.Drawing.CancelablePaintEventArgs.#ctor(System.Drawing.Graphics,System.Drawing.Rectangle)">
            <summary>
            Creates a new instance using the specified <strong>Graphics</strong> object and
            clipping rectangle.
            </summary>
            <param name="graphics">
            A <strong>Graphics</strong> object used for all painting within the
            control.
            </param>
            <param name="clipRectangle">
            A <strong>Rectangle</strong> that defines the area that should be painted.
            Typically the size of the entire control.
            </param>
        </member>
        <member name="P:GeoFramework.Drawing.CancelablePaintEventArgs.Canceled">
            <summary>Indicates if the painting operation should be completely aborted.</summary>
            <value>
            A <strong>Boolean</strong>, <strong>True</strong> if painting was aborted.
            Default is <strong>False</strong>.
            </value>
            <remarks>
            	<para>This property is used by controls which allow their paint operations to be
                cancelled. When set to True, the entire painting iteration is stopped and
                restarted. This property is useful if a control always needs to display the very
                latest information.</para>
            	<para>Setting this property to <strong>True</strong> can have some undesirable
                affects. For example, if a paint iteration is cancelled repeatedly, the control
                will never get far enough in a paint operation to paint on-screen. Some care should
                be taken when using this property.</para>
            </remarks>
            <example>
                This example demonstrates how to write a cancelable paint operation. It's typically
                a good idea to check for conditions which should cause a paint to cancel before
                beginning a time-consuming painting task. In this case, the
                <strong>IsPaintingAborted</strong> property is examined before entering a large
                loop. <strong>IsPaintingAborted</strong> becomes <strong>True</strong> when a new
                request to paint the control is made after starting the current paint iteration.
                <code lang="VB" title="[New Example]">
            Public Class MyControl
                Inherits DoubleBufferedControl
                
                Sub New()
                    IsPaintingOnSeparateThread = True
                End Sub
                
                Protected Overrides Sub OnPaintOffScreen(ByVal e As CancelablePaintEventArgs)
                    ' Should painting be cancelled?
                    If IsPaintingAborted
                        ' Yes.  Abort all painting
                        e.IsCanceled = True
                        Exit Sub
                    End If
                        
                    ' Otherwise, A big paint operation begins
                    Dim Count As Integer
                    For Count = 1 To 20000
                        Dim MyBrush As New SolidBrush(Color.Green)
                        e.Graphics.DrawRectangle(MyBrush, New Rectangle(Count, Count, 5, 5))
                        MyBrush.Dispose()
                    Next Count
                End Sub
            End Class
                </code>
            	<code lang="CS" title="[New Example]">
            public class MyControl : DoubleBufferedControl
            {
                MyControl()
                {
                    IsPaintingOnSeparateThread = true;
                }
                
                protected override void OnPaintOffScreen(PaintEventArgs e)
                {
                    // Should painting be cancelled?
                    if(IsPaintingAborted)
                    {
                        // Yes.  Abort all painting
                        e.IsCanceled = true;
                        return;
                    }
                        
                    // Otherwise, A big paint operation begins
                    for(int Count = 1; Count &lt;= 20000; Count++)
                    {
                        SolidBrush MyBrush = new SolidBrush(Color.Green);
                        e.Graphics.DrawRectangle(MyBrush, new Rectangle(Count, Count, 5, 5));
                        MyBrush.Dispose();
                    }
                }
            }
                </code>
            </example>
        </member>
        <member name="T:GeoFramework.Gps.SignalToNoiseRatio">
            <summary>Represents a measurement of the strength of a received radio signal.</summary>
            <remarks>Signal-to-Noise Ratios (or SNR for short) measure the clarity of
            a received signal versus the level at which the signal is being obscured.  For 
            example, if a GPS device is operating in open sky on a clear day, no signals are
            obscured and the SNR will be high.  Conversely, if a device is activated in a room 
            with no view of the sky, signals may be obscured, resulting in a low SNR.  
            This class is used frequently by the <see cref="T:GeoFramework.Gps.Satellite">Satellite</see>
            class to report on the quality of GPS satellite signals.  When three or more 
            satellite SNR's are strong, the device is able to obtain a fix on the current location.
            </remarks>
        </member>
        <member name="F:GeoFramework.Gps.SignalToNoiseRatio.NoSignal">
            <summary>Represents a value signifying a signal which is completely obscured.</summary>
            <remarks>If a GPS satellite reports an SNR of zero, it is likely below the
            horizon or completely blocked by an obstacle such as a building or tree.</remarks>
        </member>
        <member name="F:GeoFramework.Gps.SignalToNoiseRatio.Empty">
            <summary>Represents a value of zero.</summary>
            <remarks>If a GPS satellite reports an SNR of zero, it is likely below the
            horizon or completely blocked by an obstacle such as a building or tree.</remarks>
        </member>
        <member name="F:GeoFramework.Gps.SignalToNoiseRatio.HalfSignal">
            <summary>Represents a value signifying a signal which is partially obscured.</summary>
            <remarks>GPS satellite signals with an SNR of 25 are not likely to become
            involved in a fix.</remarks>
        </member>
        <member name="F:GeoFramework.Gps.SignalToNoiseRatio.FullSignal">
            <summary>Represents a value signifying a signal which is not being obscured.</summary>
            <remarks>GPS satellite signals with an SNR of 50 are in direct line-of-sight
            and certain to become involved in obtaining a fix on the current location.</remarks>
        </member>
        <member name="M:GeoFramework.Gps.SignalToNoiseRatio.#ctor(System.Int32)">
            <summary>Creates a new instance.</summary>
        </member>
        <member name="M:GeoFramework.Gps.SignalToNoiseRatio.#ctor(System.String)">
            <summary>Creates a new instance by parsing the specified string.</summary>
        </member>
        <member name="M:GeoFramework.Gps.SignalToNoiseRatio.#ctor(System.String,System.Globalization.CultureInfo)">
            <summary>Creates a new instance by parsing the specified string using a specific culture.</summary>
        </member>
        <member name="M:GeoFramework.Gps.SignalToNoiseRatio.ToString(System.String)">
            <overloads>Outputs the current instance as a formatted string.</overloads>
        </member>
        <member name="M:GeoFramework.Gps.SignalToNoiseRatio.GetHashCode">
            <summary>Returns a unique code for the current instance used in hash tables.</summary>
        </member>
        <member name="M:GeoFramework.Gps.SignalToNoiseRatio.Random">
            <summary>
            Returns a <strong>SignalToNoiseRatio</strong> object containing a random
            value.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.SignalToNoiseRatio.ToString(System.String,System.IFormatProvider)">
            <summary>
            Outputs the current instance as a string using the specified format and
            culture.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.SignalToNoiseRatio.Value">
            <summary>Returns the numeric value of the signal strength.</summary>
            <value>An <strong>Integer</strong> value between 0 and 50, where 0 represents no signal and fifty represents a signal at full strength.</value>
            <remarks>
            This property indicates the strength of a received satellite signal.  GPS 
            satellites always transmit signals at the same strength, but the signal is often
            obscured by the atmosphere, buildings and other obstacles such as trees.  A value
            must be at about 30 or greater for a satellite to be able to maintain a fix for long.
            In the <see cref="T:GeoFramework.Gps.Satellite">Satellite</see> class, this property is updated automatically as new information is 
            received from the GPS device.
            </remarks>
        </member>
        <member name="P:GeoFramework.Gps.SignalToNoiseRatio.IsEmpty">
            <summary>Indicates if the value is zero.</summary>
        </member>
        <member name="P:GeoFramework.Gps.SignalToNoiseRatio.Rating">
            <summary>Returns a subjective rating of the signal strength.</summary>
            <value>A value from the <strong>SignalToNoiseRatioRating</strong> enumeration.</value>
            <remarks>
            This property is frequently used to present an SNR reading in a readable format to the user.
            This property is updated automatically as new information is received from the GPS device.
            </remarks>
            <seealso cref="T:GeoFramework.Gps.SignalToNoiseRatioRating">SignalToNoiseRatioRating Enumeration</seealso>
        </member>
        <member name="T:GeoFramework.Gps.SignalToNoiseRatioRating">
            <summary>Indicates an in-English description of the a satellite's radio signal strength</summary>
            <remarks>This enumeration is used by the <see cref="P:GeoFramework.Gps.SignalToNoiseRatio.Rating">Rating</see> property of the 
            <see cref="T:GeoFramework.Gps.SignalToNoiseRatio">SignalToNoiseRatio</see> class to give an in-English interpretation 
            of satellite radio signal strength.
            </remarks>
        </member>
        <member name="F:GeoFramework.Gps.SignalToNoiseRatioRating.None">
            <summary>Represents a value of 0. The radio signal is completely obscured.</summary>
        </member>
        <member name="F:GeoFramework.Gps.SignalToNoiseRatioRating.Poor">
            <summary>Represents a value between 1 and 15.  The radio signal is mostly obscured, such as by a building or tree, but might briefly be part of a fix.</summary>
        </member>
        <member name="F:GeoFramework.Gps.SignalToNoiseRatioRating.Moderate">
            <summary>Represents a value between 16 and 30.  The radio signal is partially obscured, but could be part of a sustained fix.</summary>
        </member>
        <member name="F:GeoFramework.Gps.SignalToNoiseRatioRating.Good">
            <summary>Represents a value between 31 and 40.  The radio signal is being received with little interferance and could maintain a reliable fix.</summary>
        </member>
        <member name="F:GeoFramework.Gps.SignalToNoiseRatioRating.Excellent">
            <summary>Represents a value of 41 or above.  The satellite is in direct line of sight from the receiver and can sustain a fix.</summary>
        </member>
        <member name="T:GeoFramework.Gps.Diagnostics">
            <summary>
            Performs an analysis of GPS devices and possible problems on the host machine.
            </summary>
            <remarks><para>During the debugging process, developers frequently encounter bugs and connectivity problems.  However, it
            can sometimes be time-consuming to determine whether the problem lies in their code, or in a faulty GPS device connection.
            This class will plug into the GPS.NET device detection system and output a detailed analysis of results to the Output
            window.  If any problems are detected, they will be listed along with suggestions on how to resolve the problem.
            This class is meant to be used during debugging, but it can also serve as a troubleshooting log for your customers.</para>
            <para>You are also welcome to email the results of this log to GeoFrameworks.  Simply include information about your host device
            and operating system (e.g. "Samsung Omina, Windows Mobile 6") and we can use the log to identify unusual behavior and improve GPS.NET
            for your particular devices.  Email your logs to "support@geoframeworks.com."  However, do NOT automate this process; people
            who send too many log files will be blocked by our system.</para></remarks>
        </member>
        <member name="T:GeoFramework.Gps.IO.SerialStream">
            <summary>
            Represents a stream-based interface to a serial device.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.SerialStream.#ctor(System.String)">
            <summary>
            Creates a new instance using the specified port name.
            </summary>
            <param name="portName"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.SerialStream.#ctor(System.String,System.Int32)">
            <summary>
            Creates a new instance using the specified port name and baud rate.
            </summary>
            <param name="portName"></param>
            <param name="baudRate"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.SerialStream.#ctor(System.String,System.Int32,System.IO.FileAccess,System.IO.FileShare)">
            <summary>
            Creates a new instance using the specified port name, baud rate, read/write access and sharing modes.
            </summary>
            <param name="portName"></param>
            <param name="baudRate"></param>
            <param name="access"></param>
            <param name="sharing"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.SerialStream.DiscardInBuffer">
            <summary>
            Ignores any characters waiting to be read from the device.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.SerialStream.DiscardOutBuffer">
            <summary>
            Ignores any characters waiting to be sent to the device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.SerialStream.BaudRate">
            <summary>
            Controls the speed of communications for this device.
            </summary>
            <remarks>This property controls the speed of read and write operations for the device.  The baud rate specified must precisely
            match a rate supported by the device, otherwise data will be unrecognizable.  GPS devices are required to support a minimum baud rate of 4800
            in order to comply with the NMEA-0183 standard (though not all devices do this).  A higher rate is preferable.</remarks>
        </member>
        <member name="T:GeoFramework.Gps.IO.GpsIntermediateDriver">
            <summary>
            Represents the GPS Intermediate Driver on hand-held Windows Mobile 5.0+ devices.
            </summary>
            <remarks><para>The GPS Intermediate Driver (or GPSID for short) is a multiplexer which allows multiple applications
            to share GPS data.  This driver is included in all Windows Mobile 5.0 (and above) devices.
            When the GPSID is used, applications must not connect directly to a GPS device, but instead needs to connect
            to a special "Program Port" created by the GPSID.  This class serves as a managed interface to the GPSID, allowing
            developers to perform configuration changes through code.</para>
            <para>This class is provided as a convenience for advanced GPS developers.  In most situations, GPS.NET will assume
            responsibility for properly configuring the GPSID for the purposes of enabling GPS data with minimal effort by both
            developers or end-users.  Exercise caution when changing settings by hand; it is preferable to use this class on
            a read-only basis whenever possible.</para>
            </remarks>
        </member>
        <member name="T:GeoFramework.Gps.IO.SerialDevice">
            <summary>
            Represents a serial (RS-232) device.
            </summary>
            <remarks><para>This class is used to connect to any device using the RS-232 protocol.  Desktop computers will typically 
            have at least one serial port, and in some cases a "virtual" serial port is created to make a device emulate RS-232.  For
            example, since there is no USB standard for GPS devices, USB GPS device manufacturers typically provide a special "USB-to-serial"
            driver to make the device available for third-party applications.</para>
            <para>Each serial port on a computer has a unique name, typically beginning with "COM" followed by a number, then a colon
            (e.g. COM5:).  In some special circumstances, such as the GPS Intermediate Driver on Windows Mobile devices, a different prefix
            is used.  Each serial port includes other configuration settings, most importantly the baud rate, which controls the speed of
            communications.  GPS device manufacturers must support 4800 baud in order to comply with the NMEA-0183 standard, but many newer devices
            use faster speeds.  The baud rate of a connection must be specified precisely, otherwise all data from the device will be
            unrecognizable.</para>
            <para>Other settings for serial ports are the data bits, stop bits, and parity.  In the context of GPS, a vast majority of GPS 
            devices use eight data bits, one stop bit, and no parity.  these settings are used if no settings are explicitly provided.</para>
            </remarks>
        </member>
        <member name="M:GeoFramework.Gps.IO.SerialDevice.#ctor">
            <summary>
            Creates a new instance.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.SerialDevice.#ctor(System.String)">
            <summary>
            Creates a new instance using the specified port.
            </summary>
            <param name="portName"></param>
        </member>
        <member name="M:GeoFramework.Gps.IO.SerialDevice.#ctor(System.String,System.Int32)">
            <summary>
            Creates a new instance using the specified port name and baud rate.
            </summary>
            <param name="portName"></param>
            <param name="baudRate"></param>
        </member>
        <member name="P:GeoFramework.Gps.IO.SerialDevice.Port">
            <summary>
            Returns the name of the port used to open a connection.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.SerialDevice.PortNumber">
            <summary>
            Returns the numeric portion of the port name.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.SerialDevice.BaudRate">
            <summary>
            Controls the speed of communications for this device.
            </summary>
            <remarks>This property controls the speed of read and write operations for the device.  The baud rate specified must precisely
            match a rate supported by the device, otherwise data will be unrecognizable.  GPS devices are required to support a minimum baud rate of 4800
            in order to comply with the NMEA-0183 standard (though not all devices do this).  A higher rate is preferable.</remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.SerialDevice.DetectionBaudRates">
            <summary>
            Controls the baud rates tested during GPS protocol detection.
            </summary>
            <remarks><para>A GPS device may support any number of baud rates.  As a result, the GPS.NET device detection system
            needs to test multiple baud rates in order to find a match.  This collection controls the list of baud rates
            tested during detection.</para>
            <para>Advanced GPS developers can improve performance by trimming this list down to baud rates which will actually 
            be used.</para>
            </remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.SerialDevice.MaximumAllowedFailures">
            <summary>
            Controls the maximum allowed detection failures before a device is excluded from detection.
            </summary>
            <remarks><para>Some devices involved with device detection are not GPS devices.  For example, a serial device search
            could return a bar code scanner, an infrared port, or the neighbor's computer.  This property controls how many times a device will be
            tested before it is no longer included for searches.  If a device's failure count goes beyond this number, attempts
            will no longer be made to connect to the device.</para></remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.SerialDevice.Cache">
            <summary>
            Returns a list of known Bluetooth devices.
            </summary>
            <remarks><para>To maximize performance, GPS.NET will record information about each device it encounters for the purposes of organizing
            and speeding up the GPS device detection process.  This property returns a list of all known serial devices.</para>
            <para>Since this list is managed automatically, it should not be modified.</para>
            </remarks>
        </member>
        <member name="M:GeoFramework.Gps.IO.GpsIntermediateDriver.Restart">
            <summary>
            Causes the GPS Intermediate Driver to restart.
            </summary>
            <remarks>This method is only used when changes have been made to GPSID registry settings.  When called,
            the GPSID is instructed to restart itself and load fresh registry settings.</remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.GpsIntermediateDriver.Current">
            <summary>
            Returns the GPS Intermediate Driver for the mobile device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.GpsIntermediateDriver.Port">
            <summary>
            Controls the port used to open a shared connection.
            </summary>
            <remarks>This property controls the name of the port used for all shared GPS connections.  Applications which use this port can
            trust that the GPS device will also be available to other applications using the same port.  When this property is changed, the
            GPSID registry control panel will also be updated.</remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.GpsIntermediateDriver.HardwarePort">
            <summary>
            Controls the serial GPS device managed by the GPS Intermediate Driver.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.GpsIntermediateDriver.IsAutomaticallyConfigured">
            <summary>
            Controls whether changes to the driver are performed automatically.
            </summary>
            <remarks>The GPS Intermediate Driver requires accurate information in order to function properly.  For example, the
            serial port name and baud rate of the actual GPS device must be specified or the GPSID will fail.  When this property is
            <strong>True</strong>, GPS.NET will configure the GPSID to what it believes to be the most reliable GPS device.  Additional
            changes may be made, such as the name of the "Program Port," if no value exists.</remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.GpsIntermediateDriver.IsSupported">
            <summary>
            Returns whether the GPS Intermediate Driver is supported on this computer.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.GpsIntermediateDriver.CurrentLogFile">
            <summary>
            Controls the path to a log file used to capture incoming NMEA data.
            </summary>
            <remarks>This property is typically used for debugging purposes only.  When this property is set to a path, any incoming NMEA data
            from the GPSID will be logged to this file.  If, however, the property is set to an empty string, no logging will be performed.</remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.GpsIntermediateDriver.OldLogFile">
            <summary>
            Controls the path to a second log file, used for older GPS data.
            </summary>
            <remarks>This property controls the absolute filename for a secondary log file.  When NMEA data is being logged,
            the current log file will be renamed to this filename once it reaches capacity.  A secondary log file lets developers access older GPS data while
            newer data is being collected.</remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.GpsIntermediateDriver.MaximumBufferSize">
            <summary>
            Controls the maximum number of bytes allowed in the receiving buffer for GPS data.
            </summary>
            <remarks>The maximum buffer size </remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.GpsIntermediateDriver.MaximumLogFileSize">
            <summary>
            Controls the maximum allowed size of a log file, in bytes.
            </summary>
            <remarks>This property is typically used for debugging purposes only.</remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.GpsIntermediateDriver.AllowPlugAndPlay">
            <summary>
            Controls whether the GPSID will configure itself to use plug-and-play GPS devices.
            </summary>
            <remarks>Some newer GPS devices, such as SecureDigital card devices, are usable immediately after they are plugged into
            a mobile device.  When this property is enabled, the GPSID will configure itself to use the device.  When this is disabled,
            GPS hardware settings must be specified manually, or by GPS.NET.</remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.GpsIntermediateDriver.InterfaceType">
            <summary>
            Returns the source of raw GPS data for the GPS Intermediate Driver.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.GpsIntermediateDriver.AllowConnections">
            <summary>
            Controls whether connections are allowed to the GPS Intermediate Driver.
            </summary>
            <remarks>When this property is set to <strong>True</strong>, the GPS Intermediate Driver will be responsible
            for managing all GPS device communications.  GPS.NET will only process data arriving from the GPSID.  When this
            property is set to <strong>False</strong>, the GPSID is bypassed and connections will be made directly to a device.</remarks>
        </member>
        <member name="F:GeoFramework.Gps.IO.GpsIntermediateDriverInterfaceType.Unknown">
            <summary>
            The setting is custom or unrecognized.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.IO.GpsIntermediateDriverInterfaceType.SerialDevice">
            <summary>
            A serial GPS device is providing raw data.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.IO.GpsIntermediateDriverInterfaceType.File">
            <summary>
            Raw data is coming from a file.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.IO.GpsIntermediateDriverInterfaceType.Manual">
            <summary>
            Raw GPS data is being polled manually.
            </summary>
        </member>
        <member name="T:GeoFramework.PolarCoordinate">
            <summary>Represents a coordinate measured relative to the center of a circle.</summary>
            <remarks>
            	<para>Instances of this class are guaranteed to be thread-safe because the class is
                immutable (its properties can only be changed via constructors).</para>
            </remarks>
        </member>
        <member name="F:GeoFramework.PolarCoordinate.Empty">
            <summary>Represents a polar coordinate with no value.</summary>
        </member>
        <member name="F:GeoFramework.PolarCoordinate.Center">
            <summary>Represents a polar coordinate at the center of a circle.</summary>
        </member>
        <member name="M:GeoFramework.PolarCoordinate.#ctor(System.Single,GeoFramework.Angle)">
            <summary>
            Creates a new instance using the specified radius and angle.
            </summary>
            <param name="r">A <strong>Double</strong> indicating a radius.  Increasing values represent a distance further away from the center of a circle.</param>
            <param name="theta">An <strong>Angle</strong> representing a direction from the center of a circle.</param>
            <remarks>The radius "r," when combined with an angle "theta" will create a coordinate relative to
            the center of a circle.  By default, an angle of zero represents the top of the circle ("North") and
            increasing angles wind clockwise around the circle.</remarks>
        </member>
        <member name="M:GeoFramework.PolarCoordinate.#ctor(System.Single,GeoFramework.Angle,GeoFramework.Azimuth,GeoFramework.PolarCoordinateOrientation)">
            <summary>
            Creates a new instance using the specified radius, angle, origin and winding direction.
            </summary>
            <param name="r">A <strong>Double</strong> indicating a radius.  Increasing values represent a distance further away from the center of a circle.</param>
            <param name="theta">An <strong>Angle</strong> representing a direction from the center of a circle.</param>
            <param name="origin">An <strong>Azimuth</strong> indicating which compass direction is associated with zero degrees.  (Typically North.)</param>
            <param name="orientation">A <strong>PolarCoordinateOrientation</strong> value indicating whether increasing Theta values wind clockwise or counter-clockwise.</param>
            <remarks>The radius "r," when combined with an angle "theta" will create a coordinate relative to
            the center of a circle.  The BearingOrigin will associate a compass direction with zero degrees (0°), but this value is typically "North".</remarks>
        </member>
        <member name="M:GeoFramework.PolarCoordinate.#ctor(System.String)">
            <summary>
            Creates a new instance by converting the specified string.
            </summary>
            <param name="value">A <strong>String</strong> describing a polar coordinate in the current culture.</param>
        </member>
        <member name="M:GeoFramework.PolarCoordinate.#ctor(System.String,System.Globalization.CultureInfo)">
            <summary>
            Creates a new instance by converting the specified string.
            </summary>
            <param name="value">A <strong>String</strong> describing a polar coordinate in any culture.</param>
            <param name="culture">A <strong>CultureInfo</strong> object describing how to parse the specified string.</param>
        </member>
        <member name="M:GeoFramework.PolarCoordinate.ToPoint">
            <summary>Converts the current instance to a pixel coordinate.</summary>
        </member>
        <member name="M:GeoFramework.PolarCoordinate.ToPointD">
            <summary>Converts the current instance to a highly-precise pixel coordinate.</summary>
        </member>
        <member name="M:GeoFramework.PolarCoordinate.ToCartesianPointD">
            <summary>Converts the current instance to a highly-precise Cartesian coordinate.</summary>
        </member>
        <member name="M:GeoFramework.PolarCoordinate.Rotate(System.Double)">
            <summary>
            Applies rotation to the existing coordinate.
            </summary>
            <param name="angle">The amount of rotation to apply (above zero for clockwise).</param>
            <returns>A <strong>PolarCoordinate</strong> adjusted by the specified rotation amount.</returns>
        </member>
        <member name="M:GeoFramework.PolarCoordinate.ToOrientation(GeoFramework.Azimuth,GeoFramework.PolarCoordinateOrientation)">
            <summary>
            Returns the current instance adjusted to the specified orientation and
            origin.
            </summary>
        </member>
        <member name="P:GeoFramework.PolarCoordinate.Theta">
            <summary>
            Returns <em>Theta</em>, the amount of clockwise rotation of the
            coordinate.
            </summary>
        </member>
        <member name="P:GeoFramework.PolarCoordinate.R">
            <summary>
            Returns <em>R</em>, the distance away from the center of an imaginary
            circle.
            </summary>
        </member>
        <member name="P:GeoFramework.PolarCoordinate.Origin">
            <summary>
            Returns the compass direction which matches zero degrees.
            </summary>
        </member>
        <member name="P:GeoFramework.PolarCoordinate.Orientation">
            <summary>
            Returns whether positive values are applied in a clockwise or counter-clockwise direction.
            </summary>
        </member>
        <member name="T:GeoFramework.PolarCoordinateOrientation">
            <summary>
            Controls the winding direction of increasing angular values.
            </summary>
            <remarks>This enumeration is used by the <strong>PolarCoordinate</strong> class
            to determine where a coordinate is on a circle.</remarks>
        </member>
        <member name="F:GeoFramework.PolarCoordinateOrientation.Clockwise">
            <summary>
            Increasing angles are further clockwise around the circle.
            </summary>
        </member>
        <member name="F:GeoFramework.PolarCoordinateOrientation.Counterclockwise">
            <summary>
            Increasing angles are further counter-clockwise around the circle.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.IO.VirtualDevice">
            <summary>
            Represents a simulated GPS device.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.VirtualDevice.#ctor(GeoFramework.Gps.Emulators.Emulator)">
            <summary>
            Creates a new instance using the specified emulator.
            </summary>
            <param name="emulator"></param>
        </member>
        <member name="M:GeoFramework.Gps.Filters.PositionAverageFilter.#ctor">
            <summary>
            Creates an uninitialized filter with a sample count of 4
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.Filters.PositionAverageFilter.#ctor(System.Int32)">
            <summary>
            Creates an uninitialized filter with a sample count. 
            </summary>
            <param name="sampleCount"> The number of samples used in an initialized filter. </param>
        </member>
        <member name="M:GeoFramework.Gps.Filters.PositionAverageFilter.#ctor(GeoFramework.Position[])">
            <summary>
            Creates an initialized filter.
            </summary>
            <param name="positions"> The initialization positions. </param>
            <remarks>
            The sample count equals the number of positions passed in the positions argument.
            </remarks>
        </member>
        <member name="M:GeoFramework.Gps.Filters.PositionAverageFilter.#ctor(System.Collections.Generic.IList{GeoFramework.Position},System.Int32)">
            <summary>
            Creates an initialzed filter
            </summary>
            <param name="positions"> The initialization positions. </param>
            <param name="sampleCount"> The initialized sample count. </param>
            <remarks>
            If the number of positions supllied in the positions parameter and the sample
            count parameter are not equal, the filter is uninitialized. 
            </remarks>
        </member>
        <member name="M:GeoFramework.Gps.Filters.PositionAverageFilter.Initialize(System.Collections.Generic.IList{GeoFramework.Position})">
            <summary>
            Initializes the filter
            </summary>
            <param name="positions"> The initial sample positions. </param>
            <remarks>
            This method updates the SampleCount property to the number of 
            initialization positions providedand updates the FilteredLocation
            property.
            </remarks>
        </member>
        <member name="M:GeoFramework.Gps.Filters.PositionAverageFilter.Initialize(System.Collections.Generic.IList{GeoFramework.Position3D})">
            <summary>
            Initializes the filter
            </summary>
            <param name="positions"> The initial sample positions. </param>
            <remarks>
            This method updates the SampleCount property to the number of 
            initialization positions provided and updates the FilteredLocation
            property.
            </remarks>
        </member>
        <member name="M:GeoFramework.Gps.Filters.PositionAverageFilter.Initialize(GeoFramework.Position)">
            <summary>
            Adds an initialization position.
            </summary>
            <param name="gpsPosition"> The initialization position to add. </param>
            <remarks>
            This method does not update the SampleCount or the FilteredLocation
            properties.
            </remarks>
        </member>
        <member name="M:GeoFramework.Gps.Filters.PositionAverageFilter.Initialize(GeoFramework.Position3D)">
            <summary>
            Adds an initialization position.
            </summary>
            <param name="gpsPosition"> The initialization position to add. </param>
            <remarks>
            This method does not update the SampleCount or the FilteredLocation
            properties.
            </remarks>
        </member>
        <member name="M:GeoFramework.Gps.Filters.PositionAverageFilter.Filter(GeoFramework.Position)">
            <summary>
            Adds a new observation and applies the filter.
            </summary>
            <param name="gpsPosition"> The new observation to add to the filter. </param>
            <returns> The filtered position. </returns>
            <remarks>
            This method updates the FilteredLocation property without consideration for SampleCount.
            </remarks>
        </member>
        <member name="M:GeoFramework.Gps.Filters.PositionAverageFilter.Filter(GeoFramework.Position,GeoFramework.Distance,GeoFramework.Gps.DilutionOfPrecision,GeoFramework.Gps.DilutionOfPrecision,GeoFramework.Azimuth,GeoFramework.Speed)">
            <summary>
            Adds a new observation and applies the filter.
            </summary>
            <param name="gpsPosition"> The new observation to add to the filter. </param>
            <param name="deviceError"> Does not currently affect position averaging. </param>
            <param name="horizontalDOP"> Does not currently affect position averaging. </param>
            <param name="verticalDOP"> Does not currently affect position averaging. </param>
            <param name="bearing"> Does not currently affect position averaging. </param>
            <param name="speed"> Does not currently affect position averaging. </param>
            <remarks>
            This method updates the FilteredLocation property without consideration for SampleCount.
            </remarks>
        </member>
        <member name="M:GeoFramework.Gps.Filters.PositionAverageFilter.Filter(GeoFramework.Position3D)">
            <summary>
            Adds a new observation and applies the filter.
            </summary>
            <param name="gpsPosition"> The new observation to add to the filter. </param>
            <returns> The filtered position. </returns>
            <remarks>
            This method updates the FilteredLocation property without consideration for SampleCount.
            </remarks>
        </member>
        <member name="M:GeoFramework.Gps.Filters.PositionAverageFilter.Filter(GeoFramework.Position3D,GeoFramework.Distance,GeoFramework.Gps.DilutionOfPrecision,GeoFramework.Gps.DilutionOfPrecision,GeoFramework.Azimuth,GeoFramework.Speed)">
            <summary>
            Adds a new observation and applies the filter.
            </summary>
            <param name="gpsPosition"> The new observation to add to the filter. </param>
            <param name="deviceError"> Does not currently affect position averaging. </param>
            <param name="horizontalDOP"> Does not currently affect position averaging. </param>
            <param name="verticalDOP"> Does not currently affect position averaging. </param>
            <param name="bearing"> Does not currently affect position averaging. </param>
            <param name="speed"> Does not currently affect position averaging. </param>
            <remarks>
            This method updates the FilteredLocation property without consideration for SampleCount.
            </remarks>
        </member>
        <member name="P:GeoFramework.Gps.Filters.PositionAverageFilter.SampleCount">
            <summary>
            Gets the number of samples required for a valid fintered value.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Filters.PositionAverageFilter.ObservedLocations">
            <summary>
            Gets a list of the current observed locations
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Filters.PositionAverageFilter.ObservedLocation">
            <summary>
            Not implemented in the PrositionAverage filter. Use ObservedLocations to get a list
            of observed locations.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Filters.PositionAverageFilter.FilteredLocation">
            <summary>
            Gets the filtered location
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Filters.PositionAverageFilter.IsInitialized">
            <summary>
            Gets a value indicating the state of the filter.
            </summary>
            <remarks>
            The filter is considered initialized and thus reporting valid filtered 
            locations, when the SampleCount property equals the number of values returned
            by the ObservedLocations property.
            </remarks>
        </member>
        <member name="P:GeoFramework.Gps.Filters.PositionAverageFilter.Delay">
            <summary>
            Gets the time elapsed from the oldest to the most resent position sample.
            </summary>
        </member>
        <member name="T:GeoFramework.Drawing.PolarGraphics">
            <summary>
            Encapsulates a GDI+ drawing surface using polar coordinates instead of pixel coordinates.
            </summary>
        </member>
        <member name="M:GeoFramework.Drawing.PolarGraphics.ToPoint(GeoFramework.PolarCoordinate)">
            <summary>Converts a polar coordinate to a pixel coordinate.</summary>
        </member>
        <member name="M:GeoFramework.Drawing.PolarGraphics.ToPointD(GeoFramework.PolarCoordinate)">
            <summary>Converts a polar coordinate to a highly-precise pixel coordinate.</summary>
        </member>
        <member name="M:GeoFramework.Drawing.PolarGraphics.PointDToPolarCoordinate(GeoFramework.PointD)">
            <summary>Converts the current instance into a polar coordinate.</summary>
        </member>
        <member name="M:GeoFramework.Drawing.PolarGraphics.Clear(System.Drawing.Color)">
            <summary>Erases the control's background to the specified color.</summary>
        </member>
        <member name="M:GeoFramework.Drawing.PolarGraphics.DrawLine(System.Drawing.Pen,GeoFramework.PolarCoordinate,GeoFramework.PolarCoordinate)">
            <summary>Draws a single straight line.</summary>
        </member>
        <member name="M:GeoFramework.Drawing.PolarGraphics.DrawRectangle(System.Drawing.Pen,GeoFramework.PolarCoordinate,GeoFramework.PolarCoordinate)">
            <summary>Draws a square or rectangular shape.</summary>
        </member>
        <member name="M:GeoFramework.Drawing.PolarGraphics.FillEllipse(System.Drawing.Brush,GeoFramework.PolarCoordinate,System.Single)">
            <summary>Fills the interior of a circular shape.</summary>
        </member>
        <member name="M:GeoFramework.Drawing.PolarGraphics.DrawEllipse(System.Drawing.Pen,GeoFramework.PolarCoordinate,System.Single)">
            <summary>Draws a circular shape.</summary>
        </member>
        <member name="M:GeoFramework.Drawing.PolarGraphics.FillPolygon(System.Drawing.Brush,GeoFramework.PolarCoordinate[])">
            <summary>Fills the interior of a closed shape.</summary>
        </member>
        <member name="M:GeoFramework.Drawing.PolarGraphics.DrawAndFillPolygon(System.Drawing.Pen,System.Drawing.Brush,GeoFramework.PolarCoordinate[])">
            <summary>Fills and outlines a polygon using the specified style.</summary>
        </member>
        <member name="M:GeoFramework.Drawing.PolarGraphics.DrawPolygon(System.Drawing.Pen,GeoFramework.PolarCoordinate[])">
            <summary>Draws a closed shape.</summary>
        </member>
        <member name="M:GeoFramework.Drawing.PolarGraphics.ToPointArray(GeoFramework.PolarCoordinate[])">
            <summary>Converts an array of polar coordinates to an array of pixel coordinates.</summary>
        </member>
        <member name="M:GeoFramework.Drawing.PolarGraphics.ToPointDArray(GeoFramework.PolarCoordinate[])">
            <summary>
            Converts an array of polar coordinates to an array of highly-precise pixel
            coordinates.
            </summary>
        </member>
        <member name="P:GeoFramework.Drawing.PolarGraphics.Origin">
            <summary>
            Returns the compass direction which matches zero degrees.
            </summary>
        </member>
        <member name="P:GeoFramework.Drawing.PolarGraphics.Orientation">
            <summary>
            Returns whether positive values are applied in a clockwise or counter-clockwise direction.
            </summary>
        </member>
        <member name="P:GeoFramework.Drawing.PolarGraphics.CenterR">
            <summary>Returns the value of <em>R</em> associated with the center of the control.</summary>
        </member>
        <member name="P:GeoFramework.Drawing.PolarGraphics.MaximumR">
            <summary>Returns the value of <em>R</em> associated with the edge of the control.</summary>
        </member>
        <member name="P:GeoFramework.Drawing.PolarGraphics.Graphics">
            <summary>Returns the GDI+ drawing surface used for painting.</summary>
        </member>
        <member name="P:GeoFramework.Drawing.PolarGraphics.Rotation">
            <summary>Returns the amount of rotation applied to the entire control.</summary>
        </member>
        <member name="M:GeoFramework.Gps.Emulators.NmeaEmulator.Randomize">
            <summary>
            Copies the settings of the NMEA Emulator.
            </summary>
            <returns> A new NMEA Emulator with the same settings. </returns>
        </member>
        <member name="M:GeoFramework.Gps.Emulators.NmeaEmulator.OnEmulation">
            <summary>
            Generates actual data to send to the client.
            </summary>
            <remarks>Data is sent according to the behavior of a typical GPS device: $GPGGA,
            $GPGSA, $GPRMC, $GPGSV sentences are sent every second, and a $GPGSV sentence 
            is sent every five seconds.  
            Developers who want to emulate a specific model of GPS device should override this
            method and generate the sentences specific to that device.</remarks>
        </member>
        <member name="T:GeoFramework.Gps.BinaryPacket">
            <summary>
            Represents a base class for designing GPS packets which store binary data.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.FixQuality">
            <summary>
            Indicates which devices are being used to obtain a fix, other than the GPS device
            itself.
            </summary>
            <remarks>
            This enumeration is typically used by the
            <see cref="!:Receiver.FixQuality">FixQuaity</see> property of the
            <see cref="!:Receiver">Receiver</see> class.
            </remarks>
            <example>
            <code lang="VB">
            ' Declare a new receiver
            Private WithEvents MyReceiver As New Receiver()
            
            ' Raised when the fix quality has changed
            Private Sub OnFixQualityChanged(ByVal sender As Object, ByVal e As FixQualityEventArgs)
             ' What is the new fix quality°
             Select Case e.FixQuality
            	 Case FixQuality.NoFix
            		 ' No fix is obtained
            		 Debug.WriteLine("No fix is currently obtained.")
            	 Case FixQuality.GpsFix
            		 ' A fix is present
            		 Debug.WriteLine("A fix has been obtained using only GPS satellites.")
            	 Case FixQuality.DifferentialGpsFix
            		 ' A differential fix is present
            		 Debug.WriteLine("A fix has been obtained using GPS satellites and correction information from DGPS/WAAS ground stations.")
            	 Case FixQuality.Estimated
            		 ' A fix is being estimated (not an actual fix)
            		 Debug.WriteLine("A fix is currently being estimated. ")
             End Select 
            End Sub
            </code>
            <code lang="C#">
            // Declare a new receiver
            Receiver MyReceiver = new Receiver();
            
            // Raised when the fix quality has changed
            void OnFixQualityChanged(Object sender, FixQualityEventArgs e)
            {
             // What is the new fix quality°
             switch(e.FixQuality)
             {
            	 case FixQuality.NoFix:
            		 // No fix is obtained
            		 Debug.WriteLine("No fix is currently obtained.");
            	 case FixQuality.GpsFix:
            		 // A fix is present
            		 Debug.WriteLine("A fix has been obtained using only GPS satellites.");
            	 case FixQuality.DifferentialGpsFix:
            		 // A differential fix is present
            		 Debug.WriteLine("A fix has been obtained using GPS satellites and correction information from DGPS/WAAS ground stations.");
            	 case FixQuality.Estimated:
            		 // A fix is being estimated (not an actual fix)
            		 Debug.WriteLine("A fix is currently being estimated. ");
             }
            }
            </code>
            </example>
            <seealso cref="!:Receiver.FixQuality">FixQuality Property (Receiver Class)</seealso>
        </member>
        <member name="F:GeoFramework.Gps.FixQuality.Unknown">
            <summary>
            Not enough information is available to specify the current fix quality.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.FixQuality.NoFix">
            <summary>No fix is currently obtained.</summary>
        </member>
        <member name="F:GeoFramework.Gps.FixQuality.GpsFix">
            <summary>A fix is currently obtained using GPS satellites only.</summary>
        </member>
        <member name="F:GeoFramework.Gps.FixQuality.DifferentialGpsFix">
            <summary>A fix is obtained using both GPS satellites and DGPS/WAAS ground 
            stations.  Position error is as low as 0.5-5 meters.</summary>
        </member>
        <member name="F:GeoFramework.Gps.FixQuality.PulsePerSecond">
            <summary>
            A PPS or pulse-per-second fix.  PPS signals very accurately indicate the start of a second.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.FixQuality.FixedRealTimeKinematic">
            <summary>
            Used for surveying.  A fix is obtained with the assistance of a reference station.  Position error is as low as 1-5 centimeters.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.FixQuality.FloatRealTimeKinematic">
            <summary>
            Used for surveying.  A fix is obtained with the assistance of a reference station.  Position error is as low as 20cm to 1 meter.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.FixQuality.Estimated">
            <summary>
            The fix is being estimated.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.FixQuality.ManualInput">
            <summary>
            The fix is being input manually.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.FixQuality.Simulated">
            <summary>
            The fix is being simulated.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.FixMethod">
            <summary>
            Indicates whether a fix is present and if altitude can be calculated along with
            latitude and longitude.
            </summary>
            <remarks>
            This enumeration is used by the 
            <see cref="!:Receiver.FixMethod">FixMethod</see> property of the
            <see cref="!:Receiver">Receiver</see>
            class to indicate if altitude measurements are possible. Altitude measurements are
            possible whenever there are four or more satellites involved in a fix.
            </remarks>
            <example>
            This example demonstrates how to use the FixMethod enumeration to tell if altitude 
            measurements can be made.  NOTE: Some devices have built-in altimeters.  These devices
            can report altitude even when there is no fix present.  To support such devices, avoid
            using this property entirely and use any non-zero altitude measurement.
            <code lang="VB">
            Private WithEvents MyReceiver As New Receiver()
            
            ' Raised whenever the fix method has changed
            Private Sub OnFixMethodChanged(ByVal sender As Object, ByVal e As FixMethodEventArgs)
             ' What is the new fix method°
             Select Case e.FixMethod
            	 Case FixMethod.NoFix
            		 ' We have neither position or altitude
            		 Debug.WriteLine("Your position is: Not Yet Available")
            		 Debug.WriteLine("Your altitude is: Not Yet Available")
            	 Case FixMethod.Fix2D
            		 ' We have a position but no altitude
            		 Debug.WriteLine("Your position is: " &amp; MyReceiver.Position.ToString)
            		 Debug.WriteLine("Your altitude is: Not Yet Available")
            	 Case FixMethod.Fix3D
            		 ' We have both position and altitude
            		 Debug.WriteLine("Your position is: " &amp; MyReceiver.Position.ToString)
            		 Debug.WriteLine("Your altitude is: " &amp; MyReceiver.Altitude.ToString)
             End Select
            End Sub
            </code>
            <code lang="C#">
            // Declare a new receiver
            Private WithEvents MyReceiver As New Receiver()
            
            // Raised whenever the fix method has changed
            void OnFixMethodChanged(Object sender, FixMethodEventArgs e)
            {
             // What is the new fix method°
             switch(e.FixMethod)
             {
            	 case FixMethod.NoFix:
            		 // We have neither position or altitude
            		 Debug.WriteLine("Your position is: Not Yet Available");
            		 Debug.WriteLine("Your altitude is: Not Yet Available");
            	 case FixMethod.Fix2D:
            		 // We have a position but no altitude
            		 Debug.WriteLine("Your position is: " &amp; MyReceiver.Position.ToString());
            		 Debug.WriteLine("Your altitude is: Not Yet Available");
            	 case FixMethod.Fix3D:
            		 // We have both position and altitude
            		 Debug.WriteLine("Your position is: " &amp; MyReceiver.Position.ToString());
            		 Debug.WriteLine("Your altitude is: " &amp; MyReceiver.Altitude.ToString());
             }
            }
            </code>
            </example>
            <seealso cref="!:Receiver.FixMethod">FixMethod Property (Receiver Class)</seealso>
        </member>
        <member name="F:GeoFramework.Gps.FixMethod.NoFix">
            <summary>The GPS device does not have a fix on the current position.</summary>
        </member>
        <member name="F:GeoFramework.Gps.FixMethod.Fix2D">
            <summary>The GPS device is reporting latitude and longitude.</summary>
        </member>
        <member name="F:GeoFramework.Gps.FixMethod.Fix3D">
            <summary>The GPS device is reporting latitude, longitude, and altitude.</summary>
        </member>
        <member name="F:GeoFramework.Gps.FixMethod.Unknown">
            <summary>
            The fix method is not yet known.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.FixStatus">
            <summary>
            Indicates whether a satellite fix is currently active.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.FixLikelihood">
            <summary>
            Indicates the likelihood that a GPS satellite fix will be obtained or
            sustained.
            </summary>
            <example>
                This example uses the FixLikelihood enumeration to make a judgement call on the
                stability of the fix. 
                <code lang="VB">
            ' Declare a new receiver
            Private WithEvents MyReceiver As New Receiver()
             
            Sub Main()
             ' Start listening for messages
             MyReceiver.Start
            End Sub
             
            Sub OnFixLikelihoodChanged(ByVal sender As Object, ByVal e As FixLikelihoodEventArgs) Handles MyReceiver.FixLikelihoodChanged
             ' Do we have a fix currently°
             If MyReceiver.IsFixObtained Then
                 ' Yes.  What's the likelihood that the fix will be sustained°
                 Select Case MyReceiver.FixLikelihood
                     Case FixLikelihood.Unlikely
                         Debug.WriteLine("The current fix is about to be lost!")
                     Case FixLikelihood.Possible
                         Debug.WriteLine("The current fix is unstable.  Find a more open view of the sky soon.")
                     Case FixLikelihood.Likely
                         Debug.WriteLine("The current fix is nearly stable.")
                     Case FixLikelihood.Certain
                         Debug.WriteLine("The current fix is stable.")
                 End Select
             Else
                 ' No. What's the likelihood that a fix will be obtained°
                 Select Case MyReceiver.FixLikelihood
                     Case FixLikelihood.Unlikely
                         Debug.WriteLine("A fix is not possible.  Find a more open view of the sky.")
                     Case FixLikelihood.Possible
                         Debug.WriteLine("A fix is possible, but satellite signals are still mostly obscured.")
                     Case FixLikelihood.Likely
                         Debug.WriteLine("A fix should occur within the next several seconds.")
                     Case FixLikelihood.Certain
                         Debug.WriteLine("A fix will occur in a few seconds.")
                 End Select
             End If
            End Sub
                </code>
            	<code lang="CS">
            ' Declare a new receiver
            Private Receiver MyReceiver = new Receiver();
             
            void Main()
            {
             // Start listening for messages
             MyReceiver.Start();
            }
             
            void OnFixLikelihoodChanged(Object sender, FixLikelihoodEventArgs e)
            {
             // Do we have a fix currently°
             if (MyReceiver.IsFixObtained)
             {
                 // Yes.  What's the likelihood that the fix will be sustained°
                 switch(MyReceiver.FixLikelihood)
                 {
                     case FixLikelihood.Unlikely:
                         Debug.WriteLine("The current fix is about to be lost!");
                         break;
                     case FixLikelihood.Possible:
                         Debug.WriteLine("The current fix is unstable.  Find a more open view of the sky soon.");
                         break;
                     case FixLikelihood.Likely:
                         Debug.WriteLine("The current fix is nearly stable.");
                         break;
                     case FixLikelihood.Certain:
                         Debug.WriteLine("The current fix is stable.");
                         break;
                 }
             }
             else
             {
                 // No. What's the likelihood that a fix will be obtained°
                 switch(MyReceiver.FixLikelihood)
                 {
                     case FixLikelihood.Unlikely:
                         Debug.WriteLine("A fix is not possible.  Find a more open view of the sky.");
                         break;
                     case FixLikelihood.Possible:
                         Debug.WriteLine("A fix is possible, but satellite signals are still mostly obscured.");
                         break;
                     case FixLikelihood.Likely:
                         Debug.WriteLine("A fix should occur within the next several seconds.");
                         break;
                     case FixLikelihood.Certain:
                         Debug.WriteLine("A fix will occur in a few seconds.");
                         break;
                 }
             }
            }
                </code>
            </example>
            <seealso cref="!:Receiver.FixLikelihood">FixLikelihood Property (Receiver Class)</seealso>
        </member>
        <member name="F:GeoFramework.Gps.FixLikelihood.Unlikely">
            <summary>Indicates that a fix would probably be lost if a fix is acquired.</summary>
            <remarks>When this value is returned, nearly all of the available GPS satellite signals are being obscured by buildings, trees, or other solid objects.  The device should be moved into a more open view of the sky.</remarks>
        </member>
        <member name="F:GeoFramework.Gps.FixLikelihood.Possible">
            <summary>
            Indicates that a fix would probably be lost after a short period of time if a fix
            is acquired.
            </summary>
            <remarks>When this value is returned, a few satellite signals are available, but the combined signals are too weak to maintain a fix for long.  The device should be moved into a more open view of the sky.</remarks>
        </member>
        <member name="F:GeoFramework.Gps.FixLikelihood.Likely">
            <summary>
            Indicates that a fix would probably last for a longer period of time if a fix is
            acquired.
            </summary>
            <remarks>When this value is returned, at least three satellite signals are being received clearly.  If conditions stay the same or improve, a fix is imminent.</remarks>
        </member>
        <member name="F:GeoFramework.Gps.FixLikelihood.Certain">
            <summary>
            Indicates that a fix is very likely to be sustained given the current satellite
            signal strengths.
            </summary>
            <remarks>When this value is returned, several satellite signals are being received and are strong enough to maintain a fix.</remarks>
        </member>
        <member name="T:GeoFramework.Gps.FixMode">
            <summary>
            Indicates if the GPS device is automatically deciding between a 2-D and a 3-D
            fix.
            </summary>
            <remarks>
            This enumeration is used by the
            <see cref="!:Receiver.FixMode">FixMode</see> property of the
            <see cref="!:Receiver">Receiver</see>
            class. A vast majority of GPS devices use a setting of Automatic because there is no
            complicated math behind figuring out if a 2-D fix or 3-D fix is present. If there are
            three satellites involved in a fix, only the latitude and longitude can be calculated,
            so the fix is 2-D. If more than three involved, the fix is 3-D.
            </remarks>
            <seealso cref="!:Receiver.FixMode">FixMode Property (Receiver Class)</seealso>
        </member>
        <member name="F:GeoFramework.Gps.FixMode.Automatic">
            <summary>Typical value.  The GPS device is automatically deciding between a two- and three-dimensional fix.</summary>
        </member>
        <member name="F:GeoFramework.Gps.FixMode.Manual">
            <summary>Rare value.  The user must specify whether a two- or three-dimensional fix is to be used.</summary>
        </member>
        <member name="F:GeoFramework.Gps.FixMode.Unknown">
            <summary>
            The fix mode is not yet known.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.IO.Devices">
            <summary>
            Encapsulates GPS device detection features and information about known devices.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.Devices.CancelDetection">
            <summary>
            Aborts the process of finding GPS devices.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.Devices.BeginDetection">
            <summary>
            Starts looking for GPS devices on a separate thread.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.Devices.Undetect">
            <summary>
            Removes any cached information about known GPS devices.
            </summary>
        </member>
        <member name="M:GeoFramework.Gps.IO.Devices.WaitForDevice">
            <summary>
            Waits for any GPS device to be detected.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.IO.Devices.WaitForDevice(System.TimeSpan)">
            <summary>
            Waits for any GPS device to be detected up to the specified timeout period.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.IO.Devices.WaitForDetection">
            <summary>
            Waits for device detection to complete.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.IO.Devices.WaitForDetection(System.TimeSpan)">
            <summary>
            Waits for device detection to complete up to the specified timeout period.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GeoFramework.Gps.IO.Devices.Add(GeoFramework.Gps.IO.Device)">
            <summary>
            Adds a GPS device to the list of known GPS devices.
            </summary>
            <param name="device"></param>
        </member>
        <member name="E:GeoFramework.Gps.IO.Devices.DeviceDetectionStarted">
            <summary>
            Occurs when the process of finding GPS devices has begun.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.IO.Devices.DeviceDetectionAttempted">
            <summary>
            Occurs immediately before a device is about to be tested for GPS data.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.IO.Devices.DeviceDetectionAttemptFailed">
            <summary>
            Occurs when a device has failed to transmit recognizable GPS data.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.IO.Devices.DeviceDetected">
            <summary>
            Occurs when a device is responding and transmitting GPS data.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.IO.Devices.DeviceDiscovered">
            <summary>
            Occurs when a Bluetooth device has been found.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.IO.Devices.DeviceDetectionCanceled">
            <summary>
            Occurs when the process of finding GPS devices has been interrupted.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.IO.Devices.DeviceDetectionCompleted">
            <summary>
            Occurs when the process of finding GPS devices has finished.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.IO.Devices.PositionChanged">
            <summary>
            Occurs when any interpreter detects a change in the current location.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.IO.Devices.AltitudeChanged">
            <summary>
            Occurs when any interpreter detects a change in the distance above sea level.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.IO.Devices.SpeedChanged">
            <summary>
            Occurs when any interpreter detects a change in the current rate of travel.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.IO.Devices.SatellitesChanged">
            <summary>
            Occurs when any interpreter detects a change in GPS satellite information.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.IO.Devices.BearingChanged">
            <summary>
            Occurs when any interpreter detects a change in the direction of travel.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.IO.Devices.FixLost">
            <summary>
            Occurs when any interpreter detects when a GPS device can no longer calculate the current location.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.IO.Devices.FixAcquired">
            <summary>
            Occurs when any interpreter detects when a GPS device becomes able to calculate the current location.
            </summary>
        </member>
        <member name="E:GeoFramework.Gps.IO.Devices.UtcDateTimeChanged">
            <summary>
            Occurs when any interpreter detects a change in the satellite-derived date and time.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.Any">
            <summary>
            Returns a GPS device which is connectable and is reporting data.
            </summary>
            <remarks></remarks>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.AllowBluetoothConnections">
            <summary>
            Controls whether Bluetooth devices are included in the search for GPS devices.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.AllowSerialConnections">
            <summary>
            Controls whether serial devices are included in the search for GPS devices.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.AllowExhaustiveSerialPortScanning">
            <summary>
            Controls whether a complete range of serial devices is searched, regardless of which device appear to actually exist.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.MaximumSerialPortNumber">
            <summary>
            Controls the maximum serial port to test when exhaustive detection is enabled.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.GpsDevices">
            <summary>
            Returns a list of confirmed GPS devices.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.BluetoothDevices">
            <summary>
            Returns a list of known wireless Bluetooth devices (not necessarily GPS devices).
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.SerialDevices">
            <summary>
            Returns a list of known serial devices (not necessarily GPS devices).
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.DeviceDetectionTimeout">
            <summary>
            Controls the amount of time allowed for device detection to complete before it is aborted.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.GpsIntermediateDriver">
            <summary>
            Returns the current GPS multiplexer if it is supported by the system.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.AllowGpsIntermediateDriver">
            <summary>
            Controls whether the GPS Intermediate Driver is used.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.IsOnlyFirstDeviceDetected">
            <summary>
            Controls whether detection is aborted once one device has been found.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.IsClockSynchronizationEnabled">
            <summary>
            Controls whether the system clock should be synchronized to GPS-derived date and time.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.IsBluetoothEnabled">
            <summary>
            Controls whether the Bluetooth receiver is on and accepting connections.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.IsBluetoothSupported">
            <summary>
            Returns whether the Bluetooth stack on the local machine is supported by GPS.NET.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.IsDeviceDetected">
            <summary>
            Returns whether a GPS device has been found.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.IsDetectionInProgress">
            <summary>
            Returns whether the process of finding a GPS device is still working.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.Position">
            <summary>
            Controls the current location on Earth's surface.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.Speed">
            <summary>
            Controls the current rate of travel.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.Satellites">
            <summary>
            Controls the current list of GPS satellites.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.UtcDateTime">
            <summary>
            Controls the current satellite-derived date and time.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.DateTime">
            <summary>
            Controls the current satellite-derived date and time.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.Altitude">
            <summary>
            Controls the current distance above sea level.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.IO.Devices.Bearing">
            <summary>
            Controls the current direction of travel.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.IO.DeviceDetectionException">
            <summary>
            Represents a problem which has occured during device detection.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.IO.DeviceDetectionExceptionEventArgs">
            <summary>
            Represents information about a device detection problem during detection-related events.
            </summary>
        </member>
        <member name="T:GeoFramework.ColorInterpolator">
            <summary>Calculates intermediate colors between two other colors.</summary>
            <remarks>
            	<para>This class is used to create a smooth transition from one color to another.
                After specifying a start color, end color, and number of intervals, the indexer
                will return a calculated <strong>Color</strong>. Specifying a greater number of
                intervals creates a smoother color gradient.</para>
            	<para>Instances of this class are guaranteed to be thread-safe because the class
                uses thread synchronization.</para>
            	<para>On the .NET Compact Framework, the alpha channel is not supported.</para>
            </remarks>
            <example>
                This example uses a <strong>ColorInterpolator</strong> to calculate ten colors
                between (and including) <strong>Blue</strong> and <strong>Red</strong> . 
                <code lang="VB" title="[New Example]">
            ' Create a New color interpolator
            Dim Interpolator As New ColorInterpolator(Color.Blue, Color.Red, 10)
            ' Output Each calculated color
            Dim i As Integer
            For i = 0 To 9
                ' Get the Next color In the sequence
                Dim NewColor As Color = Interpolator(i)
                ' Output RGB values of this color
                Debug.Write(NewColor.R.ToString() + ",")
                Debug.Write(NewColor.G.ToString() + ",")
                Debug.WriteLine(NewColor.B.ToString())
            Next i
                </code>
            	<code lang="CS" title="[New Example]">
            // Create a new color interpolator
            ColorInterpolator Interpolator = new ColorInterpolator(Color.Blue, Color.Red, 10);
            // Output each calculated color
            for(int i = 0; i &lt; 10; i++)
            {
                // Get the next color in the sequence
                Color NewColor = Interpolator[i];
                // Output RGB values of this color
                Console.Write(NewColor.R.ToString() + ",");
                Console.Write(NewColor.G.ToString() + ",");
                Console.WriteLine(NewColor.B.ToString());
            }
                </code>
            </example>
        </member>
        <member name="M:GeoFramework.ColorInterpolator.#ctor(System.Drawing.Color,System.Drawing.Color,System.Int32)">
            <summary>Creates a new instance.</summary>
            <param name="startColor">A <strong>Color</strong> at the start of the sequence.</param>
            <param name="endColor">A <strong>Color</strong> at the end of the sequence.</param>
            <param name="count">
            The total number of colors in the sequence, including the start and end
            colors.
            </param>
        </member>
        <member name="P:GeoFramework.ColorInterpolator.Item(System.Int32)">
            <summary>Returns a calculated color in the sequence.</summary>
            <value>A <strong>Color</strong> value representing a calculated color.</value>
            <example>
                This example creates a new color interpolator between blue and red, then accesses
                the sixth item in the sequence. 
                <code lang="VB" title="[New Example]">
            ' Create a New color interpolator
            Dim Interpolator As New ColorInterpolator(Color.Blue, Color.Red, 10)
            ' Access the sixth item
            Color CalculatedColor = Interpolator(5);
                </code>
            	<code lang="CS" title="[New Example]">
            // Create a New color interpolator
            ColorInterpolator Interpolator = new ColorInterpolator(Color.Blue, Color.Red, 10);
            // Access the sixth item
            Color CalculatedColor = Interpolator[5];
                </code>
            </example>
            <param name="index">
            An <strong>Integer</strong> between 0 and <strong>Count</strong> minus
            one.
            </param>
        </member>
        <member name="P:GeoFramework.ColorInterpolator.InterpolationMethod">
            <summary>
            Controls the interpolation technique used to calculate intermediate
            colors.
            </summary>
            <value>
            An <strong>InterpolationMethod</strong> value indicating the interpolation
            technique. Default is <strong>Linear</strong>.
            </value>
            <remarks>
            This property controls the rate at which the start color transitions to the end
            color. Values other than Linear can "accelerate" and/or "decelerate" towards the end
            color.
            </remarks>
        </member>
        <member name="P:GeoFramework.ColorInterpolator.StartColor">
            <summary>Controls the first color in the sequence.</summary>
            <value>
            A <strong>Color</strong> object representing the first color in the
            sequence.
            </value>
            <remarks>Changing this property causes the entire sequence to be recalculated.</remarks>
            <example>
            This example changes the start color from Green to Orange.
            </example>
        </member>
        <member name="P:GeoFramework.ColorInterpolator.EndColor">
            <value>
            A <strong>Color</strong> object representing the last color in the
            sequence.
            </value>
            <summary>Controls the last color in the sequence.</summary>
            <remarks>Changing this property causes the entire sequence to be recalculated.</remarks>
        </member>
        <member name="P:GeoFramework.ColorInterpolator.Count">
            <summary>Controls the number of colors in the sequence.</summary>
            <remarks>Changing this property causes the entire sequence to be recalculated.</remarks>
            <value>
            An <strong>Integer</strong> indicating the total number of colors, including the
            start and end colors.
            </value>
        </member>
        <member name="T:GeoFramework.Gps.Controls.ClockDisplayMode">
            <summary>
            Indicates which time is displayed by the clock control.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.Controls.ClockDisplayMode.SatelliteDerivedTime">
            <summary>
            GPS satellite signals are used to display the current time.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.Controls.ClockDisplayMode.LocalMachineTime">
            <summary>
            The computer's system clock is used to display the current time.
            </summary>
        </member>
        <member name="F:GeoFramework.Gps.Controls.ClockDisplayMode.Manual">
            <summary>
            A custom time will be displayed by setting the Value property manually.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Controls.Clock">
            <summary>
            Represents a user control which displays the local or satellite-derived time.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Controls.Clock.MinorTickColor">
            <summary>
            Controls the color of smaller tick marks drawn around the edge of the
            control.
            </summary>
            <remarks>
            Minor tick marks are drawn between major tick marks around the control. These
            tick marks can be made invisible by changing the color to
            <strong>Transparent</strong>.
            </remarks>
        </member>
        <member name="P:GeoFramework.Gps.Controls.Clock.MajorTickColor">
            <remarks>
            There are ten major tick marks in an altimeter, drawn next to numbers on the
            control. These tick marks can be made invisible by changing the color to
            <strong>Transparent</strong>.
            </remarks>
        </member>
        <member name="P:GeoFramework.Gps.Controls.Clock.DisplayMode">
            <summary>
            Controls the technique used to display the current time.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Controls.Clock.Value">
            <summary>
            Controls the time being displayed by the device.
            </summary>
        </member>
        <member name="P:GeoFramework.Gps.Controls.Clock.ValueColor">
            <summary>
            Controls the color used to paint numeric labels for hours.
            </summary>
        </member>
        <member name="T:GeoFramework.Gps.Nmea.NmeaSentenceEventArgs">
            <summary>
            Represents information about raw data received from a GPS device.
            </summary>
            <remarks>This object is used primarily by the <see cref="!:Receiver.SentenceReceived">SentenceReceived</see>
            and <see cref="!:Receiver.UnrecognizedSentenceReceived">UnrecognizedSentenceReceived</see> events of
            the <see cref="!:Receiver">Receiver</see> class to provide notification when raw data has been received
            from the GPS device.</remarks>
            <example>This example demonstrates how to use this class when raising an event.
            <code lang="VB">
            ' Declare a new event
            Dim MySentenceEvent As SentenceEventHandler
            ' Create an NMEA $GPGLL sentence
            Dim MySentence As String = "$GPGLL,4122,N,14628,W,104243.00,A,D*7E"
            
            Sub Main()
              ' Raise our custom event, also indicating that the sentence was completely recognized
              RaiseEvent MySentenceEvent(Me, New SentenceEventArgs(MySentence, SentenceType.Recognized))
            End Sub
            </code>
            <code lang="C#">
            // Declare a new event
            SentenceEventHandler MySentenceEvent;
            // Create an NMEA $GPGLL sentence
            string MySentence = "$GPGLL,4122,N,14628,W,104243.00,A,D*7E"
            
            void Main()
            {
              // Raise our custom event, also indicating that the sentence was completely recognized
              MySentenceEvent(this, New SentenceEventArgs(MySentence, SentenceType.Recognized));
            }
            </code>
            </example>
            <seealso cref="!:Receiver">Receiver Class</seealso>
            <seealso cref="!:Receiver.SentenceReceived">SentenceReceived Event (Receiver Class)</seealso>
            <seealso cref="!:Receiver.UnrecognizedSentenceReceived">UnrecognizedSentenceReceived Event (Receiver Class)</seealso>
        </member>
        <member name="M:GeoFramework.Gps.Nmea.NmeaSentenceEventArgs.#ctor(GeoFramework.Gps.Nmea.NmeaSentence)">
            <summary>
            Creates a new instance with the specified block of raw GPS data and a flag indicating if the sentence was fully parsed.
            </summary>
            <param name="sentence">A <strong>String</strong> containing raw GPS data.</param>
            <param name="sentenceType">A value from the <see cref="!:SentenceType">SentenceType</see> enumeration indicating if the sentence was fully parsed or not.</param>
            <seealso cref="T:System.Type">Type Property</seealso>
            <seealso cref="P:GeoFramework.Gps.Nmea.NmeaSentenceEventArgs.Sentence">Sentence Property</seealso>
        </member>
        <member name="P:GeoFramework.Gps.Nmea.NmeaSentenceEventArgs.Sentence">
            <summary>
            Stores one line of raw GPS data.
            </summary>
            <value>A String containing one line of raw NMEA or Garmin® text data.</value>
            <remarks>When using the NMEA-0183 or Garmin® text protocols, this property stores text for one individual line.  For the Garmin® binary protocol, a signature such as "(Garmin waypoint data)" is stored instead of actual binary data.</remarks>
            <seealso cref="T:System.Type">Type Property</seealso>
        </member>
        <member name="T:GeoFramework.Drawing.PolarControlEffect">
            <summary>Indicates the special effect applied to polar controls during painting.</summary>
        </member>
        <member name="F:GeoFramework.Drawing.PolarControlEffect.None">
            <summary>No effect is applied.</summary>
        </member>
        <member name="F:GeoFramework.Drawing.PolarControlEffect.Glass">
            <summary>
            Additional painting is performed during
            <strong>OnPaintOffScreenBackground</strong> and
            <strong>OnPaintOffScreenAdornments</strong> to give the appearance of lighting and
            glass.
            </summary>
        </member>
    </members>
</doc>
